我应该如何在rails中进行测试?

时间:2011-11-22 23:23:25

标签: ruby-on-rails unit-testing functional-testing

我正在为我的模型中的方法编写测试。当然,这听起来像我需要单元测试,但是这个方法的一个参数从rails app中的表单中获取参数。我应该创建单元测试还是功能测试(或两者)?

对于单元测试,我只是将一个param变量设置为类似于表单响应输出的哈希值,但是我想知道这是否是最好的方法,因为表单params可以在某个时候更新或更改将来

感谢。

1 个答案:

答案 0 :(得分:2)

您至少应该为您的方法进行一次或多次单元测试。通常,您需要涵盖三件事:

  1. 基本情况 - 给这种方法最可能的参数是什么?
  2. 特殊情况 - 仍会通过哪些极端情况?什么是上限和下限?那个空案怎么办?
  3. 无效案例 - 可能为该方法提供哪些无效值?你的方法如何处理它们?
  4. 如果你覆盖了这些情况并且你没有做任何特别的事情将参数传递给方法,那么功能测试变得不那么重要了。

    但是我还是鼓励你做一些行为测试。 Rails是一个环境,其中单元测试和行为/集成测试很容易实现,因为可用的宝石很多 - 主要是RSpecCucumberCapybara。如果您编写黄瓜功能,那么Capybara将选择表单参数更改,如果出现任何问题,您的功能将失败。