Rails 和测试,为什么测试控制器还不够?
Rails and Testing, why testing controllers is not enough?
我想知道,在 rails 运行 中测试控制器相关视图(即使未显示)并集成许多模型问题(通过保存、更新...),测试controller 应该几乎足以满足所有接近 CRUD 经典架构的应用程序。我错了吗?
此外,可以在浏览器中测试视图,因为眼睛可以比在测试中描述所有内容更快地检查(并且它们也可以实现 CSS 控制。)
感谢您的观点!
PH
仅测试您的控制器会告诉您,从广义上讲,您的应用程序正在运行,至少在 500'ing 或其他方面是这样。但是你能确定它在做完全正确的事情吗?如果您需要测试的只是像 "given params[:id]
, is the record with id <params[:id]>
loaded?" 这样的标准足智多谋的行为,那么只需测试控制器就足够了。
但是,您将不可避免地向模型中添加更复杂的行为。在这种情况下,您的控制器可能会通过调用模型方法来设置一些变量或其他内容,而不会引发错误。在此阶段,直接测试模型方法要清晰得多,以确保在给定一组特定条件的情况下,它会做正确的事情。
我想知道,在 rails 运行 中测试控制器相关视图(即使未显示)并集成许多模型问题(通过保存、更新...),测试controller 应该几乎足以满足所有接近 CRUD 经典架构的应用程序。我错了吗? 此外,可以在浏览器中测试视图,因为眼睛可以比在测试中描述所有内容更快地检查(并且它们也可以实现 CSS 控制。)
感谢您的观点!
PH
仅测试您的控制器会告诉您,从广义上讲,您的应用程序正在运行,至少在 500'ing 或其他方面是这样。但是你能确定它在做完全正确的事情吗?如果您需要测试的只是像 "given params[:id]
, is the record with id <params[:id]>
loaded?" 这样的标准足智多谋的行为,那么只需测试控制器就足够了。
但是,您将不可避免地向模型中添加更复杂的行为。在这种情况下,您的控制器可能会通过调用模型方法来设置一些变量或其他内容,而不会引发错误。在此阶段,直接测试模型方法要清晰得多,以确保在给定一组特定条件的情况下,它会做正确的事情。