gpt4 book ai didi

ruby - Rspec 测试 : it { should respond_to() }

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

如果您有一个要测试其存在的属性列表,并且您有以下内容:

before do
@attr = Employee.new(name: "One",
email: "onetwo@three.com")
end

subject { @attr }

it { should respond_to(:name) }
it { should respond_to(:email) }

it { should be_valid }

然后你可以测试相反的情况吗,即如果这些属性为空,使用:

it { should_not respond_to(:reverse, :blank) }
it { should_not be_valid }

我确实尝试了上面的方法,但即使阅读了 this discussion,我也不太理解这些问题。 .

有谁知道如何使用相同的初始化来测试存在,然后转过来测试空白属性?

最佳答案

我认为您误解了 respond_to 在测试中的作用。当你做的时候

it { should respond_to(:name) }

您断言 @attr.respond_to(:name) 返回 true,这意味着该方法存在,而不是它正在返回一个值。如果您想测试是否有返回值,您可以这样做:

its(:name){ should be_present }

这将确保调用 name 方法的结果返回一个非假、非空值。然后,当你反转那个测试时

its(:name){ should_not be_present }

您断言 name 方法返回空白。您必须为第二个测试创建不同的设置,因为您正在测试处于不同状态的对象。

关于ruby - Rspec 测试 : it { should respond_to() },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9119034/

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