加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.

如果您在加载时遇到问题…那么请考虑解决问题的其他方法 – 例如,不要使用大量的灯具,而是使用工厂只创建每个单独测试所需的数据.

如果还有其他原因……请告诉我们 – 我们可能会有解决方案.

编辑:如果你确实需要它,我实际上已经为此写了一段猴子补丁:
“faking startup and shutdown”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读