gpt4 book ai didi

ruby - 在 rspec 中匹配参数的属性值

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:00 24 4
gpt4 key购买 nike

有没有办法在 rspec 中匹配参数的属性 value?检查the documentation看起来还有其他可用的匹配器,例如 anythingan_instance_ofhash_including - 但没有检查对象属性值的方法。

示例 - 假设我有这个实例方法:

class DateParser
def parse_year(a_date)
puts a_date.year
end
end

然后我可以这样写一个期望:

dp = DateParser.new
expect(dp).to receive(:parse_year).with(some_matcher)

我想让 some_matcher 检查 parse_year 是用任何具有属性 year 且值为 2014 的对象调用的。是这可能与 rspec 中开箱即用的参数匹配器有关,还是必须编写自定义参数匹配器?

最佳答案

您可以传递一个 block 并设置对 block 内参数的期望:

describe DateParser do
it "expects a date with year 2014" do
expect(subject).to receive(:parse_year) do |date|
expect(date.year).to eq(2014)
end
subject.parse_year(Date.new(2014,1,1))
end
end

关于ruby - 在 rspec 中匹配参数的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23003598/

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