我还是铁杆新手,但是我看了Michael Hartl的书(超级好,顺便说一句)。
但是,我开始使用Devise(也非常有帮助),我有一个关于使用rspec进行测试的问题。在Hartl的书中,所有这些测试都针对用户验证,例如电子邮件的唯一性,或者只是用户是否使用有效属性创建。
如果我使用Devise,是否需要这样的简单测试?
我问的部分原因是即使我知道他们正在工作,我也无法弄清楚如何编写测试。通常,您是否需要测试宝石以查看其内部功能是否正常工作?或者我可以假设它可以工作并且只测试用户是否可以创建并登录并完成它?
我测试我可以如何测试我是否被重定向,但这似乎更像测试我创建的规则是正确的。测试Devise的内部功能似乎过度了?
答案 0 :(得分:5)
我会考虑测试设计的内部功能是否过度。但是,如果您对设计进行了更改,无论是视图,控制器还是验证,那么测试更改是合适的。
我也总是有请求/验收测试来测试我的应用程序的登录/注册部分。
您还问:
一般来说,您是否需要测试宝石以查看其内部功能是否正常工作?
不,通常不会这样做。我喜欢寻找的东西:在gem的github或网页上,他们链接到TravisCI ---你可以看看他们当前的测试套件是否有效。一般来说,在你的水平测试,而不是在你的水平测试。例如,不要测试Rails的工作原理,只需使用Rails。