RSpec :想要对一次性方法进行多次测试,包括夹具
我正在开发 Rails 应用程序。 我想用 rspec 测试我的方法“开始!”我的模型备份。
所以这里的规范(也都是方法):
Backup
应该将文件复制到文件夹 /backupsBackup
应该检查 md5 sumBackup
应该删除原始文件文件
对于我的测试,我根据固定装置创建假文件:
MyFile.all.each{|r| system("touch #{r.path}") }
然后,@backup.start!
应该删除其中一些文件(不是全部)。
问题是:我不想为每个测试重新运行所有操作! 我可以编写一个大型测试,其中包含所有要求,但这会很难看...
before(:all)
模式,上下文中的事件在所有上下文之前运行,而固定装置则不是出于设计原因,可用。
有什么建议吗?
谢谢。
I'm working on a Rails app.
I want to test with rspec my method "start!" of my model Backup.
So here the specs (all are methods, too):
Backup
should copy files to folder /backupsBackup
should check md5 sumBackup
should delete original files
For my tests, I create fake files, based on fixtures :
MyFile.all.each{|r| system("touch #{r.path}") }
Then, @backup.start!
should delete some of this files (not all).
The problem is : I don't want to re-run all the opérations for each test !
I could write one big test, with all the requirements include in it, but it would be ugly...
The before(:all)
pattern, event in contexts runs before all contexts, and fixtures are not available, for design reasons.
Any suggestions ?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果每个方法都是独立的,则可以模拟除一个方法之外的所有方法,并每次更改该方法。
您可以选择并限制您想要测试的方法。
If each method are separate, you can mock all except one and change the one each time.
You can choose and limit with method you want test.
感谢 http://thefrontiergroup。 com.au/blog/2010/01/using-rspec-example-groups-for-common-functionity/,
我找到了解决方案:
Thanks to http://thefrontiergroup.com.au/blog/2010/01/using-rspec-example-groups-for-common-functionality/,
I found the solution :