这是一个最佳实践问题。
我正在维护一个Web应用程序,它是另一个我无法访问其源代码的Web应用程序的代理。我的项目的功能是使其他服务器的API易于使用和移动友好。
我正在添加单元测试,我发现自己想要打破像Tests should be independent
这样的标准最佳做法。
要测试login
,我首先需要register
。如果register
失败,login
将失败(或无意义。)处理此问题的最佳方法是什么?使用setUp
函数注册然后失败login
,因为缺少预期的用户?或者强制执行严格的测试排序并确保首先调用register
?
我倾向于倾向于使用setUp
功能,但我很想知道社区的想法。
测试框架是JUnit,虽然我认为这个问题适用于其他框架。
答案 0 :(得分:1)
您正在描述集成测试,而不是单元测试。单元测试模拟依赖关系并运用单个类。没有必要先注册,因为你嘲笑成功注册的结果(如果需要,取决于你的类设计)。
对于集成测试,是的,你会有一个复杂的设置。如果每次运行速度太慢,您可能会发现创建单个测试更容易,该测试执行多个测试,每个测试都依赖于之前的测试。