控制器测试功能测试?

问题描述 投票:0回答:1

我对测试的不同方面非常感兴趣。我希望你能真正读到这个,如果你有这方面的经验,就给我你的想法。让我们分解吧。

事实1:据说,当我们从用户角度编写测试时(去uri,获得结果,如果用户看到正确的结果,那么测试是正确的)。他们说这称为功能测试。

总结1:因此,当我们为控制器编写测试时,它总是起作用,因为我们必须向端点发出请求并观察结果。因此,控制器的写入测试始终是功能测试。是对的吗?

==========================================================================

事实2:因此,集成测试不是控制器测试。让我们假设我们的应用程序中有一些函数(不是控制器函数)。例如,在我们的帮助程序类或模型中。我们想测试集成测试等功能。所以我们不会嘲笑任何东西而只是测试它。

总结2:因此,集成测试可以在非控制器函数的函数上完成,写在其他地方(不需要请求的地方),并且必须使用外部依赖。通过外部依赖,可以想到任何东西(例如文件,数据库或其他类本身)。是对的吗?

==========================================================================

总结3:如果我只有一个api而不是返回视图,我会从控制器返回json和状态代码。如果我为控制器编写测试,它仍将被称为功能测试。对?

testing model-view-controller integration-testing functional-testing
1个回答
0
投票

有趣的问题。我相信这取决于你如何测试控制器。让我们从几个不同的types of testing的定义开始。这些定义大致遵循您的两个事实。

我们以电子商务平台和Controller为例进行结账。

控制器 - 单元测试

这是我们必须孤立地考虑控制器的地方。所以我们想模仿用户的请求。例如,如果您使用的是Spring Framework,则可以使用该库来模拟http requests

控制器 - 集成测试

要进行集成测试,我们需要考虑系统两个部分的交互。在我们的购物篮示例中,我们可以如上所述模拟http请求,但测试购物篮和结帐代码之间的交互。

控制器 - 功能测试

对于功能测试,我们需要考虑用户点击UI并使用购物篮的端到端场景。

总之,如果您使用模拟HTTP请求的东西测试控制器,那么很可能是单元测试或集成测试。如果您使用selenium或用户点击UI测试控制器,则很可能是功能测试。

© www.soinside.com 2019 - 2024. All rights reserved.