使用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
3条答案
按热度按时间4bbkushb1#
测试类是否包含模块通常是错误的,因为您测试的是实现细节而不是预期行为。
可以通过在类上调用
ancestors
来找到包含的模块,因此您可以简单地使用include
匹配器:你的第二个期望应该用以下方法来测试:
编辑
直到今天我才知道类实现了
<=>
操作符。你可以简单地检查Dish::Player < HTTParty
是否是。0g0grzrc2#
您可以使用以下命令测试类是否直接包含模块:
tjjdgumg3#
您可以使用
be_kind_of
,它也适用于包含的模块: