ruby-on-rails - Rails + RSpec + 在运行 RSpec 测试套件时设置测试用例文件的顺序

标签 ruby-on-rails selenium testing rspec capybara

对于 RSpec Capybara 测试用例 [Selenium],我有大约 7 到 8 个规范文件。很少有测试用例相互依赖。例如,在删除产品之前,我必须创建产品。

但是当测试用例执行开始时,在创建产品 rspec 之前删除基于产品的 rspec 运行。

文件名:-

product_delete.rspec

product_listing.rspec

product_newly_added.rspec

命令:rspec

根目录下的.rspec文件

--require spec_helper
--format html
--out ./log/rspec_results.html
--color

执行删除产品时测试用例失败。

有什么方法可以定义运行 RSpec 时文件执行的顺序。

最佳答案

测试用例应该是独立的。对于删除测试用例,您可以使用工厂并创建一条记录,然后在单个测试用例中将其删除,如示例所示。 只需定义一次工厂并使用它来创建记录,这样就不会违反 DRY。

describe 'POST destroy' do
 before(:each) do
  @obj = build(:factory_name)
  @obj.save
 end

 it 'it has status 200' do
  post :destroy, {"id" => @obj.id}
  expect(ClassOfObj.count).to eq(0)
 end
end

关于ruby-on-rails - Rails + RSpec + 在运行 RSpec 测试套件时设置测试用例文件的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46482033/

相关文章:

ruby-on-rails - 设计:不允许的参数

ruby-on-rails - Rails 2.3 和 Rails 3.2 'weeks' 方法的区别

java - 需要自定义 arraylist 值,如下所示

java - 使用 Selenium WebDriver 滚动网页内的特定 DIV

java - 如何将 node.js 合并到 java 测试中?

ruby-on-rails - Rails - Heroku - Postgres - 不以明文形式存储敏感内容

ruby-on-rails - Rails 对 nil 值的唯一性验证

python - 使用 Python 和 selenium 抓取 URL

testing - CakePHP3 : Mock methods in integration tests?

php - 您将如何测试表达式引擎中的模块是否有错误?