代码之家  ›  专栏  ›  技术社区  ›  Wojciech Kaczmarek

钢轨试验夹具与唯一性

  •  1
  • Wojciech Kaczmarek  · 技术社区  · 16 年前

    在Rails中,似乎单独插入和删除给定模型的设备记录。我想测试一个事务中有多个对象/行,例如检查唯一性。如何做到这一点?

    2 回复  |  直到 16 年前
        1
  •  4
  •   foz    16 年前

    夹具未经验证。当你设置它们的时候,它们可能是完全错误的,直到有东西爆炸,Rails才会抱怨。在运行测试之前,最好确保初始测试数据库(与设备一起播种)处于有效状态。

    为了检查像唯一性这样的东西,我将动态地创建记录,而不依赖于设备。要么在测试用例中创建它们,要么使用 FactoryGirl (顺便说一句,这是一个很好的方法来清理你的测试和停止使用夹具完全)。

        2
  •  2
  •   MattMcKnight    16 年前

    您是说要构建一个测试来检查rails“validates-unique-of”操作符,还是说要测试自己唯一记录的逻辑?在第一种情况下,我不必费心,Rails测试就涵盖了这一点。在第二种情况下,我将创建一个测试,该测试创建一个与fixtures中的记录相同的记录。

    从更广泛的意义上讲,将多个保存放入单个事务中,可以创建对象,然后:

    MyModel.transaction do
      model1.save
      model2.save
    end
    

    但我不认为这是完成你想做的事情的方法。