当前位置:  开发笔记 > 编程语言 > 正文

Rails测试:固定装置,工厂和魔术数字

如何解决《Rails测试:固定装置,工厂和魔术数字》经验,为你挑选了1个好方法。

我有一个应用程序需要相当多的数据(1000条记录)来进行适当的测试.我发现获得一组可测试的,合理的数据的唯一方法是使用我的生产数据库的一个子集.我已将其转换为正常`test/fixtures'位置的YAML灯具.

这有效,但现在我有一堆看似脆弱的测试和断言,这取决于它们是满足条件X的特定数量的记录...

def test_children_association
  p = Parent.find(1)
  assert_equal 18, p.children.count, "Parent.children isn't providing the right records"
end

这对我来说似乎不是一个好主意,但我不确定是否有更好/可接受的方法来测试需要大量数据层次结构的应用程序.



1> marcumka..:

测试中的幻数不是反模式.您的测试需要非常简单,以至于您无需测试它们.这意味着你将拥有一些神奇的数字.这意味着当您更改少量功能时,您的测试将会中断.这很好.

夹具有一些问题,但是你可以做一些简单的事情来使它们更容易使用:

    只有您的灯具中的基线数据,大多数测试需要但不关心的数据类型.这将涉及预先投入时间,但最好早点承担痛苦,而不是在项目的生命周期中编写糟糕的单元测试.

    在测试环境中添加要测试的数据.这提高了测试的可读性,并使您免于在单元测试开始时编写"确保没有人搞砸了灯具"的健全性检查.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有