如何在一个gem的rspec测试中调用我的主类中的方法?
我已经看到过像这样的其他问题,但没有一个问题对我有帮助,所以我问这个问题。
我尝试为我正在创建的gem编写rspec测试(我不使用Rails),但是我无法调用主文件中的方法:
require "status/page/version"
require 'thor'
require "nokogiri"
require 'open-uri'
require 'date'
module Status
module Page
class CLI < Thor
desc "pull", "query website status"
def pull
.....
这就是我在page_specs.rb文件中调用的方式:
RSpec.describe Status::Page do
it "has a version number" do
expect(Status::Page::VERSION).not_to be nil
end
it "does something useful" do
expect(true).to eq(true)
end
it "it should output to a file on pull" do
msg = Status::Page.pull
expect(msg).not_to be nil
end
end
有人可以告诉我如何在我的情况下调用Rspec中的方法吗?
由于
答案 0 :(得分:3)
尝试Status::Page::CLI.new.pull
pull
是类Status::Page::CLI
上的实例方法,因为它是一个实例方法,您需要使用.new
实例化该类。
由于该类继承自Thor,因此对.new
的调用确实通过了Thor::Base.initialize。但是从文档来看,它看起来像是为所有参数设置了默认值,所以只调用.new
而不用args就足够了。