gpt4 book ai didi

ruby-on-rails - 使用多个 "it" block 在 rspec 中设置测试

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

假设我有一个实例方法可以执行许多我需要测试的不同的事情,比如 store#process_order。我想测试它向客户发送电子邮件、在订单表中添加条目、从信用卡中扣款等。在 rspec 中进行设置的最佳方法是什么?目前,我正在使用 rspec 和 factory girl 我做这样的事情:

describe Store do
describe "#process_order" do
before do
@store = Factory(:store)
@order = Factory(:order)
# call the process method
@store.process_order(@order)
end

it 'sends customer an email' do
...
end
it 'inserts order to db' do
...
end
it 'charges credit card' do
...
end
end
end

但是感觉真的很乏味。这真的是为我需要确保做几件不同事情的方法编写规范的正确方法吗?

注意:我对有关这是否是好的设计的答案不感兴趣。这只是我编造的一个例子来帮助解决我的问题 - 如何编写这些类型的规范。

最佳答案

这是一个很好的方法,因为如果将来发生故障,您可以确定哪个元素损坏了。我完全赞成单独测试事物。我倾向于不检查插入数据库的东西,因为你当时是 Rails 功能。我只是检查对象的有效性。

这也是 RSpec 书中使用的方法。如果您不确定与 RSpec 相关的任何内容,我当然会建议您阅读它。

关于ruby-on-rails - 使用多个 "it" block 在 rspec 中设置测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7294232/

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