0

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

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

4

3 回答 3

1

如果您只对单元(模型)和集成规范有信心,并且它为您的应用程序提供了足够的覆盖范围,您可以忽略其他的。如果你只做这两个,我可以告诉你,你做的比一般的开发者要多。大多数开发人员也只是使用这些。

但是当你有一个巨大的应用程序时,你应该考虑一下控制器测试很有用。我的意思是,在集成测试中,您不应该测试 http 响应或某些文本是否在 h1 HTML 标记内,因为如果您更改视图,则需要更改集成测试,而不仅仅是更改视图测试(如果有的话)。

有很多种测试,因此您可以将您的功能分解为多个部分,然后您可以查看到底出了什么问题。是模型上的吗?控制器?

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

于 2013-01-21T22:55:25.940 回答
1

在控制器规范中有一些更容易实现的测试。

一个例子:

场景:一个人想要测试对一组视图的授权访问(让我们假设非授权用户将被重定向到登录页面)。

集成测试方法:这可以通过集成测试来测试视图,这往往执行速度较慢(访问登录页面,填写凭据字段并按回车,访问页面进行测试......)

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

于 2013-01-21T22:56:17.743 回答
0

我使用此指南https://github.com/bbatsov/rails-style-guide#rspec

你可以有很多集成测试,但它会很慢。我喜欢制作很多控制器、模型和视图规范,然后只做一些集成规范。

于 2013-01-23T02:46:31.083 回答