我对如何在不使用 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/