2011-11-22 52 views
0

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

对于单元测试,我只是设置一个类似于窗体响应输出的哈希参数变量,但我想知道这是否是最好的方法,因为窗体参数可以更新或在某个时间更改未来。

谢谢。

+0

如果表单参数发生变化,无论如何,无论测试的位置如何,您都必须更改测试。 –

回答

2

您应该至少对您的方法进行一个或多个单元测试。一般来说,你需要覆盖三件事:

  1. 基本情况 - 什么是最有可能给这个方法的参数?
  2. 特殊情况 - 什么是仍然会通过的极端情况?什么是上限和下限? null情况如何?
  3. 无效的情况 - 可能提供给无效的方法的值是什么?你的方法如何处理它们?

如果你覆盖了这些情况,并且你没有做任何特殊的参数传递给方法,那么功能测试变得不那么重要。

但是我仍然鼓励你做一些行为测试。 Rails是一个单元测试和行为/集成测试很容易完成的环境,因为有大量的宝石可用 - 主要是RSpec,CucumberCapybara。如果你写了一个Cucumber功能,那么Capybara将会选择表单参数的变化,如果有任何不妥之处,你的功能将失败。

相关问题