gpt4 book ai didi

ruby - MinitTest 规范对第二个参数的混淆

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:07 25 4
gpt4 key购买 nike

我是 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".

出于某种原因,现在显示“Expected petrol not diesel”。所以似乎添加我假设的消息参数(因为它在测试单元版本中)正在使断言翻转。

规范框架中消息参数的想法是否无效?

最佳答案

MiniTest::Spec 处理多个参数的方式有些不一致。它似乎已在 https://github.com/seattlerb/minitest/commit/cd4fe89b0057edc2258876ad8c5f5e7e722f73c2 中修复.

只需从 RubyGems 安装最新版本的 MiniTest 就可以了:

gem install minitest

然后将此添加到文件顶部以使用 gem:

gem 'minitest'

关于ruby - MinitTest 规范对第二个参数的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com