如果一起运行,Rspec测试失败

时间:2017-10-09 17:35:46

标签: ruby-on-rails unit-testing testing rspec integration-testing

我有2个_spec文件:第一个包含单元测试,另一个包含一些集成测试。

通过指定文件名运行它们时它们是绿色的,而将它们作为“rspec”运行它们中的3个是失败的。

我正在使用database_cleaner gem来清理每个测试周围的测试数据库。

config.use_transactional_fixtures = false

  config.before(:suite) do
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:each) do
    DatabaseCleaner.start
  end

  config.after(:each) do
    DatabaseCleaner.clean
  end

我正在使用“let”实例化对象和FactoryGirl来创建示例对象。

以前有没有人经历过这样的事情?

2 个答案:

答案 0 :(得分:1)

有些问题可能是:

  • 您正在修改但未在测试之间重置的类变量。类变量是反模式,通常应该避免。
  • 你没有正确地描述像常数这样的东西。

在测试之间保持状态的任何内容都可能导致您看到的问题。使用调试器在每次测试期间检查对象的状态。

答案 1 :(得分:0)

我通过从def转到let来解决了我的问题。注意定义