我学习了 Rails 来创建一个网站,并且基本版本已经启动并运行。不幸的是,我只为我的代码编写了几个测试。我现在应该怎么做才能获得代码的测试覆盖率?现在很难回去为我以前的所有代码编写测试。使用像 Selenium 这样的记录工具来访问站点并记录测试是否有意义?Rails 有专门的录制工具吗?
(简而言之,如何才能赶上没有足够测试的代码的测试覆盖率?)
我学习了 Rails 来创建一个网站,并且基本版本已经启动并运行。不幸的是,我只为我的代码编写了几个测试。我现在应该怎么做才能获得代码的测试覆盖率?现在很难回去为我以前的所有代码编写测试。使用像 Selenium 这样的记录工具来访问站点并记录测试是否有意义?Rails 有专门的录制工具吗?
(简而言之,如何才能赶上没有足够测试的代码的测试覆盖率?)
首先,使用rcov 之类的工具定量测量您的测试覆盖率。
集成测试将提供更多覆盖率是对的,因此它们是您实现目标的正确选择。但是,当它们失败时,它们提供的反馈意义不大,因此您将来需要用更孤立的测试来增加或替换它们。
我希望记录测试会导致测试的来源难以让人阅读。因此,您可能需要考虑capybara-webkit(但不要使用 capybara 2.1)。
最后,由于您当前的测试库很小,您有机会考虑rspec或shoulda-context。
事实是,您将只需要返回并纠正所有测试。
首先,没有任何一种“记录”工具可以帮助进行单元和控制器测试。
其次,如果你确实使用了一些东西来“记录”特性/集成测试,你到底会测试什么?如果您不具体说明您期望在那里的功能,那么您如何确定您的应用程序现在正在做它应该做的事情?