最佳实践——单元测试依赖关系



这是一个最佳实践问题。

我正在维护一个网络应用程序,该应用程序是另一个源代码我无法访问的网络应用程序的代理。我的项目的功能是使其他服务器的API易于使用和移动友好。

我正在添加单元测试,我发现自己想要打破像Tests should be independent这样的标准最佳实践。

要测试login,我首先需要register。如果register失败,login就会失败(或者毫无意义)。处理这种情况的最佳方法是什么?使用setUp函数注册,然后由于缺少预期用户而使login失败?或者强制执行严格的测试顺序并确保首先调用register

我倾向于使用setUp函数,但我很想知道社区的想法。

测试框架是JUnit,尽管我认为这个问题也适用于其他框架。

您描述的是集成测试,而不是单元测试。单元测试模拟依赖关系并练习单个类。没有必要先注册,因为您模拟成功注册的结果(如果需要,取决于您的类设计)。

对于集成测试,是的,您将有一个复杂的设置。如果每次运行速度太慢,您可能会发现创建一个单独的测试更容易,该测试执行多个测试,每个测试都依赖于以前的测试。

最新更新