黄瓜+;数据库单元(ruby)

黄瓜+;数据库单元(ruby),ruby,cucumber,dbunit,calabash,Ruby,Cucumber,Dbunit,Calabash,有人为ruby做过Cucumber+DBUnit设置吗?(我特别尝试将它与葫芦一起用于移动应用程序测试。) 理想情况下,听起来我应该能够在Cucumber中添加@Before钩子,这样我就可以在继续测试之前,将我想要的测试数据加载到数据库中。否则,在我看来,我没有办法进行数据驱动测试 注意:我确实知道场景大纲,但我(不仅)希望使用不同的参数运行测试——相反,我需要在运行测试之前使数据库处于已知状态 提前谢谢你考虑过试一试吗?您可以设置database_cleaner,以便它在每次测试或整个测试套

有人为ruby做过Cucumber+DBUnit设置吗?(我特别尝试将它与葫芦一起用于移动应用程序测试。)

理想情况下,听起来我应该能够在Cucumber中添加@Before钩子,这样我就可以在继续测试之前,将我想要的测试数据加载到数据库中。否则,在我看来,我没有办法进行数据驱动测试

注意:我确实知道场景大纲,但我(不仅)希望使用不同的参数运行测试——相反,我需要在运行测试之前使数据库处于已知状态


提前谢谢

你考虑过试一试吗?您可以设置database_cleaner,以便它在每次测试或整个测试套件之前清理您的数据库。它也工作得很好。

非常感谢Oto!(完全错过了您的回复,因此对延迟表示歉意)这基本上解决了我一半的问题-我可以用它来截断一些表(这很好!我确实需要它),但我也需要而且找不到的是如何用“初始状态”预加载数据库,就像使用DbUnit一样。。。对此有什么想法吗?可以用固定装置、工厂或种子来预加载数据库。fixture和seed是在运行测试套件时读取的静态文件(YAML),它们用初始数据填充数据库。工厂更先进一些,它们不仅可以构建数据库记录,还可以构建整个“对象”,即行为或数据可能不同的对象。如果您的数据很简单,请检查夹具,否则请与工厂联系。如果你想得到更准确的答案,你必须提供更多关于你的数据库/项目的信息。。。您的初始数据库状态有多复杂?再次感谢Oto!谢谢你指出它们之间的区别。设备主要用于Rails应用程序吗?我假设我能够在一个普通的ruby项目中使用它们(即没有rails,这是一个葫芦ios项目),我只需要想办法…好吧-我承认-我放弃了“正确”的方法来做这件事。。我真的没有时间学习ruby,所以我最终只是创建了一个标记,我已经将它添加到我的一些葫芦测试中,并使用system()命令从文件备份中恢复mysql数据库。我知道这不太好,但现在已经足够好了…:/拜托。没那么糟。是的,您可以使用固定装置,而不使用Ruby中的Rails。通常,您选择的ActiveRecord或DataMapper已经构建了所有这些美妙的东西,这样您就不会重新发明轮子。然而,我读你的问题越多,我就越觉得这款葫芦ios可能不是你真正需要的东西。你有没有考虑过使用更地道的东西。像xtest、Spectra()或KIF()之类的东西?