gpt4 book ai didi

.net MVC 功能测试

转载 作者:行者123 更新时间:2023-12-02 05:18:48 25 4
gpt4 key购买 nike

如何对 .net mvc Controller /操作进行功能测试。

我刚刚经历了多年的 Rails 开发,开始从事 .net mvc 的工作。这很痛苦,但我希望这很大程度上只是学习曲线。

对我而言,不太明显的是 .NET 世界中 Rails 功能和集成测试的类比。 Rails 使功能测试变得如此明显和简单,如果您不花时间进行覆盖,那就太愚蠢了。对于.NET - 我还没有让Google 给出一个看起来值得的结果。我希望这是我刚刚起步的 .net 状态导致我无法输入正确的搜索词或错过某些范式。

救命!

最佳答案

请原谅我对 Rails 的了解不足,并告诉您有关 Rails 的已知信息,但我希望将这些内容以比较的形式提供给其他用户。

Rails 有 3 种类型的测试:单元测试、功能测试和集成测试。

单元测试测试您的模型

Controller 的功能测试

用于测试 Controller 操作之间的流程的集成测试

这种范例似乎是从一开始就通过 Rails 来教授的。

然而,在 .NET MVC 世界中,测试方法的布局并不像 Rails 中那样。

许多开发人员会在他们的 Controller 上编写单元测试,就像在 Rails 中的模型上编写单元测试一样。您基本上调用一个方法( Controller 操作)并从该方法返回一个对象。然后您可以断言它具有您期望的值。这样做是一件很痛苦的事情,因为你必须模拟很多废话(HttpContext 等)。另外,这不是功能测试。您仅测试一种方法,而不是测试应用程序的功能。

在 Rails 中,您并不是在 Controller 上编写单元测试,而是实际上发出 Web 请求并获得 Web 响应。您可以检查状态代码、cookie 等。您正在对系统进行端到端测试。

有几种方法可以在 .NET MVC 中做到这一点

1) Steven Sanderson 有一个小工具可以帮助解决这个问题。

http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/

当我第一次看到这个并开始使用它时,我认为它很棒,但我遇到了问题。

2) RestSharp + NUnit - 这是我目前进行此类测试的偏好。它允许您将网络请求放在一起并非常容易地获得响应。通过一些通用方法,您可以使用 RestSharp 快速移动。 NUnit 将为您提供所需的断言。我只是向本地 IIS 服务器发出请求,并断言我在响应中期望的不同项目。您实际上无法像在 Rails 中那样测试分配给 View 的模型,但这对我来说不是问题。

如果您习惯了 RSpec,那么您可以使用 SpecFlow,它应该类似。

Rails 将测试直接构建到框架中,它是一等公民。可惜 .NET MVC 中不是这样。

希望有帮助。

关于.net MVC 功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668291/

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