0

我想为集成测试设置一些数据库状态。我的基本设置如下所示:

describe "some behaviour" do
  before(:each) do
    <setup some mock objects with stubs>

    <call the database set up script>
  end
end
  • 设置模拟自然属于 a before(:each),示例取决于模拟。
  • 数据库设置脚本很慢,所以我只想调用一次。
  • 进行集成测试的过程的一部分是数据库设置脚本。虽然我可以更改脚本以使其更易于测试,但我无法删除它对模拟状态的依赖。
  • 必须在设置模拟之后调用数据库设置,因为它依赖于它们。例如,一些模拟返回数据库设置脚本需要放入数据库记录的标识符。

所以我真的想把数据库设置放在一个before(:all). before(:all)导致设置在之前运行,before(:each)所以我看不到如何满足所有要求。

我试图将模拟的设置拆分为一个辅助函数,我将其称为 和 中的第一个before(:all)调用before(:each)。rspec 不允许在before(:all)块中创建双打,所以这不起作用。

有没有办法只运行一次慢速数据库设置,但仍然有可用的模拟?

4

0 回答 0