我真的对测试的不同方面感兴趣。我希望你能真正读这篇文章,如果你有这方面的经验,就告诉我你的想法。我们分手吧。
事实1:据说,当我们从用户的角度编写测试(进入uri,获得结果,如果用户看到正确的结果,那么测试是正确的)。他们说这叫做功能测试。
总结1:因此,当我们为控制器编写测试时,它总是起作用的,因为我们必须向端点发出请求并观察结果。因此,为控制器编写测试始终是功能测试。,对吗?
==========================================================================
事实2:所以,集成测试不是控制器测试。让我们想象一下,我们的应用程序中有一些函数(不是控制器函数)。例如,在帮助类或模型中。我们要测试这些功能,比如集成测试。所以我们不会嘲笑任何东西而只是测试它。
总结2:因此,集成测试可以对非控制器函数、在其他地方(不需要执行请求)进行集成测试,并且它们必须使用外部依赖关系。通过外部依赖项,可以考虑任何东西(例如文件、数据库或其他类本身)。,对吗?
==========================================================================
总结3:如果我只有一个api,而不是返回视图,我会从控制器返回json和状态代码。如果我为控制器编写测试,它仍将被称为功能测试。对吗?
发布于 2019-04-25 09:31:36
有趣的问题。我相信这取决于你如何测试控制器。让我们从不同测试类型的几个定义开始。这些定义大致遵循你的两个事实。
让我们以电子商务平台和Controller为例进行结帐。
控制器-单元测试
这就是我们必须孤立地考虑控制器的地方。因此,我们希望模拟来自用户的请求。例如,如果您正在使用Spring,您可以使用库来模拟http请求。
控制器-集成测试
要成为一个集成测试,我们需要考虑系统的两个部分之间的交互。在我们的购物篮示例中,我们可以像上面那样模拟http请求,但是测试购物篮和签出代码之间的交互。
控制器-功能测试
对于功能测试,我们需要考虑用户单击UI并使用购物篮的端到端场景。
总之,如果您使用的是模拟HTTP请求的东西来测试您的控制器,那么它很可能是单元测试或集成测试。如果您正在使用selenium或用户单击UI来测试控制器,那么它很可能是功能测试。
https://stackoverflow.com/questions/55716347
复制相似问题