gpt4 book ai didi

testing - Controller 测试是功能测试吗?

转载 作者:行者123 更新时间:2023-11-28 21:38:08 25 4
gpt4 key购买 nike

我对测试的不同方面非常感兴趣。我希望你能真正阅读这篇文章,如果你有这方面的经验,请告诉我你的想法。让我们分解一下。

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

总结 1:事实证明,当我们为 Controller 编写测试时,它总是起作用的,因为我们必须向端点发出请求并观察结果。因此,为 Controller 编写测试始终是功能测试。 是这样吗?

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

事实 2:因此,集成测试不是 Controller 测试。假设我们的应用程序中有一些功能(不是 Controller 功能)。例如在我们的帮助类或模型中。我们想像集成测试一样测试这些功能。所以我们不会模拟任何东西,只是测试它。

总结2:因此,集成测试可以在非 Controller 函数、写在其他地方(不需要做请求的地方)的函数上进行,并且它们必须使用外部依赖项。通过外部依赖,可以想到任何东西(例如文件、数据库或另一个类本身)。 是这样吗?

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

总结 3:如果我只有一个 api 而不是返回 View ,我从 Controller 返回 json 和状态代码会怎么样。如果我为 Controller 编写测试,它仍将被称为功能测试。 对吗?

最佳答案

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

让我们以电子商务平台和用于结帐的 Controller 为例。

Controller - 单元测试

这是我们必须单独考虑 Controller 的地方。所以我们想模拟来自用户的请求。例如,如果您使用的是 Spring 框架,则可以使用该库来模拟 http requests .

Controller - 集成测试

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

Controller - 功能测试

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

总而言之,如果您正在使用模拟 HTTP 请求的东西来测试您的 Controller ,那么它很可能是单元测试或集成测试。如果您正在使用 selenium 测试 Controller 或用户点击 UI,那么它很可能是功能测试。

关于testing - Controller 测试是功能测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55716347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com