用于集成测试的rspec设置

时间:2013-10-15 08:28:42

标签: ruby rspec integration-testing

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

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

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

所以我真的想把数据库设置放在before(:all)中。 before(:all)导致设置在<{strong> before(:each)之前运行,因此我无法看到如何满足所有要求。

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

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

0 个答案:

没有答案