使用minitest发现本教程,并想知道rspec中是否存在等效的匹配器:
Interesting minitest assertion
describe "default attributes" do
it "must include httparty methods" do
Dish::Player.must_include HTTParty
end
it "must have the base url set to the Dribble API endpoint" do
Dish::Player.base_uri.must_equal 'http://api.dribbble.com'
end
end
答案 0 :(得分:7)
测试类是否包含模块通常是错误的,因为您正在测试实现细节而不是预期的行为。
通过在课堂上调用ancestors
可以找到包含的模块,因此您可以使用简单的include
匹配器:
expect(Dish::Player.ancestors).to include(HTTParty)
您的第二个期望应该通过以下方式进行测试:
expect(Dish::Player.base_uri).to eq 'http://api.dribbble.com'
修改强>
直到今天我还不知道类实现了<=>
运算符。您只需检查Dish::Player < HTTParty
。