ruby-on-rails - 组织 Rails 功能和单元测试用例的最佳方式是什么?

标签 ruby-on-rails unit-testing testing automated-tests

我一直按 Controller /操作/场景或模型/方法/场景的层次结构来组织我的测试用例。它看起来自然而清晰。但是我发现我必须为同一场景的不同操作和方法重复设置测试数据。虽然我可以通过代码重用来减少代码冗余。但我认为还是浪费时间,尤其是对于机器来说,一次又一次地设置这些测试数据。是否有人按场景组织这些测试用例?组织测试用例的最佳方式是什么?

最佳答案

如果这个问题是关于在生成测试数据时重复自己的问题,您可能应该查看以下帮助您生成测试数据的 gem:

如果这个问题是关于运行测试时的延迟,你应该看看spork .

如果这个问题是关于组织测试的,我想一种很常见的方法是将测试分为单元测试和功能测试。

在单元测试中逐一测试所有方法。并测试功能测试中的所有场景。

规范/单位/user_spec.rb

describe "#generate_password_salt" do
  user = User.new(password: 'foobar')
  user.generate_password_salt.should == '1231asdas'
end

规范/功能/user_spec.rb

describe "when creating new user" do
  it "should generate password salt" do
     ...
  end      
end

关于ruby-on-rails - 组织 Rails 功能和单元测试用例的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7988783/

相关文章:

ruby-on-rails - Git & Rails——我搞砸了,我能恢复到上次提交吗(删除模型/ Controller /迁移/代码)

javascript - 如何将局部变量发送到仅在单击链接后呈现的部分?

testing - Accordion 未通过可访问性检查

java - JUnit 如何测试迭代器

ruby-on-rails - ruby 语法(rails 模型)

ruby-on-rails - Rails - 具有多种值(value)类型的 EAV 模型?

angular - 在 Angular 中测试组件时如何正确指定哪个组件具有通用类型的输入数据

c# - MS Test 是否提供默认值等于比较?

c# - 如何测试调用域对象中其他方法的方法

android - iOS 设备上的 Xamarin.forms 应用程序测试