gpt4 book ai didi

ruby - 没有 "its" block 的 RSpec 3 验收测试方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:16 25 4
gpt4 key购买 nike

我对如何在不使用 its(:...) 子句的情况下测试简单的 CSV 导入器有疑问。

在 RSpec 2.x 中,我的方法是将导入的对象设置为我的规范的主题,然后在 its(...) block 中测试每个属性。这是一个类似验收的测试,但它对我很有帮助,我不想对我用来进行 CSV 解析的库进行单元测试,因为它确实是一个微不足道的实现,所以我对 end-to 没问题-结束测试。

现在,有了 RSpec 3,我可以通过 transpec 使这个规范通过,但我读到 the explanation about why the its block has been removed我认为 RSpec 3 建议采用不同的方法,对吗?那你会如何测试呢?

我不认为有很多像这样的丑陋街区

describe '#email' do
subject { super().email }
it { is_expected.to eq("john_doe@email.com") }
end

优于

its(:email) { should == "john.doe@email.com" }

因为他们做的事情完全一样。

我听说您需要测试“行为”,但验收测试如何?推荐的去这里的方式是什么?谢谢!

最佳答案

据我了解,Myron 建议使用 rspec-given对于单行丰富的测试套件。使用此包,您的测试将如下所示:

Given(:email) { subject.email }

context "sign up" do
When { subject.sign_up(email: "john.doe@email.com") }

Then { email == "john.doe@email.com" }
end

关于ruby - 没有 "its" block 的 RSpec 3 验收测试方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24527927/

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