2013-01-21 33 views
0

我困惑。我应该在控制器文件夹中测试什么?控制器返回成功代码的操作?为什么,如果我能通过一个命令进行集成测试呢? 什么意见测试?测试视图是否有一些html标签?我也可以在集成测试中做到这一点。为什么rspec有这么多种类的测试?

模型需要测试验证规则?谢谢你的帮助。

回答

1

有测试更容易实现在控制器规范。

一个例子:

方案: 一个想要测试授权访问一组的意见(让我们假设,非授权用户将被重定向到登录页面)。

集成测试方法: 这可以测试视图,集成测试,这往往是较慢的执行(访问登陆页面,填写凭证字段,然后按回车,访问页面来测试...)

控制器的测试方法: 人们可以测试每个的控制器的方法和检查响应代码。响应是否为重定向? (代码200)。此外,由于控制器中的方法是rails应用程序的入口点,因此可以肯定控制器规范涵盖了其他视图。

1

如果你觉得只与单位(模型)和集成规范信心,并为您的应用程序提供足够的覆盖范围,你可以不理会其他人。如果你只是做这两件事,我可以告诉你,你做得比一般开发者多。大多数开发人员也只是使用这些。

但是你应该想想控制器测试有用的,当你有一个庞大的应用程序。我的意思是,在集成测试,你不应该测试HTTP响应,或者如果一些文本是H1 HTML标签内,因为如果你改变了看法,您将需要更改集成测试,而不是仅仅改变视图测试,如果你有一个。

有许多种测试,所以你可以有BREAKEN多个部分的功能,然后你可以看到发生了什么究竟怎么了?。它在模型上吗?控制器?

但完全不要强迫自己编写测试,你不觉得对你有用