gpt4 book ai didi

ruby-on-rails - rspec 和 shoulda - 互补还是替代?

转载 作者:数据小太阳 更新时间:2023-10-29 06:53:09 26 4
gpt4 key购买 nike

我已经使用了一段时间的 shoulda,并且阅读并使用了 rspec。我没有做过深入的比较和对比。但在我看来,两者之间有一些重叠,但它们不是 1-1 的替代品。

我正在考虑使用 rspec 在我的 rails 系统中编写一些单元测试,而不替换所有使用 shoulda 编写的现有测试。只是作为一种获得感觉的方式。

这是个好主意吗?我可以逐渐从一个转移到另一个还是自找麻烦?

我应该考虑其中一个比另一个明显的优势吗?

谢谢!

最佳答案

我不得不反对 Chris 的回答,即它们是替代方案。我在我的 Rails 应用程序中同时使用 Shoulda 和 Rspec,它们相互补充得很好。

这个组合允许我为关联和验证等重复出现的事情编写简洁的单行单元测试,以及为更复杂的规范编写完整的 rspec 套件。您可以在没有任何冲突的情况下两全其美。

查看 Shoulda README它显示了如何与 Rspec 一起安装。它甚至说它提供了“测试通用 Rails 功能的 Test::Unit 和 RSpec 兼容的单行程序。否则这些测试会更长、更复杂并且容易出错。”

编辑(示例):

在我的规范的顶部,我总是声明我的类关系和验证测试,它们简洁易读。

describe Component do

context 'relationships' do
it { should belong_to(:technology)}
it { should have_many(:system_components) }
it { should have_and_belong_to_many(:variables) }
it { should have_many(:images).dependent(:destroy) }
it { should have_many(:documents).dependent(:destroy) }
end

context 'validations' do
it { should validate_presence_of(:make) }
it { should validate_presence_of(:model) }
it { should ensure_length_of(:name).is_at_most(100) }
it { should validate_presence_of(:technology_id) }
end
end

然后我的规范的其余部分将有更复杂的测试,我使用来自 Rspec 的模拟和 stub 。

关于ruby-on-rails - rspec 和 shoulda - 互补还是替代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609543/

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