我是 BDD 新手,我正在尝试使用 MiniTest Spec:
require 'minitest/spec'
require 'minitest/autorun'
class Car
attr_accessor :type
def initialize(type)
@type = 'petrol'
end
end
describe Array do
it "must be diesel" do
Car.new('diesel').type.must_equal 'diesel'
end
end
这很棒 - 运行它我得到以下输出:
Failure:
test_0001_must_be_diesel(ArraySpec):
Expected "diesel", not "petrol".
这是有道理的——“预期的柴油,而不是汽油”正是我所期待的。如果我在我的语句中放置第二个参数must_equal
(我假设这是我想在失败时返回的消息) - 我会得到一个奇怪的结果:
require 'minitest/spec'
require 'minitest/autorun'
class Car
attr_accessor :type
def initialize(type)
@type = 'petrol'
end
end
describe Array do
it "must be diesel" do
Car.new('diesel').type.must_equal 'diesel', 'it must be a diesel'
end
end
运行这个我得到:
1) Failure:
test_0001_must_be_diesel(ArraySpec):
it must be a diesel.
Expected "petrol", not "diesel".
出于某种原因,现在它说“预期汽油而不是柴油”。因此,似乎添加我假设的消息参数(就像在测试单元版本中一样)正在使断言翻转。
规范框架中的消息参数的想法是否无效?