ruby-on-rails – Ruby on Rails2.3.8:单元测试:Rails / Ruby
发布时间:2020-12-17 03:20:18 所属栏目:百科 来源:网络整理
导读:每次运行测试时,我都想初始化数据库,而不是每次测试. 我知道Rspec之前有(:all),但我还没有能够做到这一点.我想知道铁轨是否有类似的东西. 解决方法 首先:在Test :: Unit中曾经存在一个before(:all)等价物,但它被删除了(不知道为什么). 其次:有很好的理由
每次运行测试时,我都想初始化数据库,而不是每次测试.
我知道Rspec之前有(:all),但我还没有能够做到这一点.我想知道铁轨是否有类似的东西. 解决方法
首先:在Test :: Unit中曾经存在一个before(:all)等价物,但它被删除了(不知道为什么).
其次:有很好的理由不做你想要做的事情 – 测试意味着彼此独立运行,而不是依赖于数据库中的状态.这样您就可以保证它正在测试您期望测试的内容. 如果你有一个测试可以改变数据库的状态,你移动它并且它在另一个期望它成为另一个状态的测试之后运行 – 你会遇到问题.因此,所有测试必须是独立的. 因此:数据库回滚到其原始状态并且每次都重新播种. 如果你真的想要一个db总是在的状态 – 然后在fixtures中设置它……并且只是意识到将为每个测试重新加载db. 如果您在加载时遇到问题…那么请考虑解决问题的其他方法 – 例如,不要使用大量的灯具,而是使用工厂只创建每个单独测试所需的数据. 如果还有其他原因……请告诉我们 – 我们可能会有解决方案. 编辑:如果你确实需要它,我实际上已经为此写了一段猴子补丁: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |