问题标签 [mvccontrib-testhelper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
548 浏览

asp.net-mvc-3 - 单元测试控制器时出现 NullReferenceException

我正在使用 NUnit、MvcContrib.TestHelper 包对 MVC3 站点进行单元测试,但是当我的测试方法访问具有 TryUpdateModel 的控制器时,我遇到了异常“对象引用未设置为对象的实例”。我不知道该怎么做才能通过考试。请帮助我。

我还为此提供了一个代码:

来自控制器的测试方法调用的操作如下:

调用上述动作的测试方法如下:

请给我问题的解决方案。

0 投票
1 回答
3416 浏览

asp.net-mvc - 寻找对呈现部分视图的控制器扩展进行单元测试的方向

正如标题所说,我正在寻找如何正确测试控制器扩展的方向。该扩展呈现一个局部视图,而我又在 JSONResult 中使用它:

示例用法:

我正在使用 NUnit 和MvcContrib 测试助手,但是在设置使用此扩展的控制器时,我遇到了 NRE。我假设控制器上下文设置不正确?

最终,测试开始了ViewEngines.Engines.FindPartialView。这是失败测试的一部分:

0 投票
2 回答
320 浏览

asp.net-mvc - 使用 MvcContrib TestHelper 断言不应映射入站路由

MvcContrib.TestHelper.RouteTestingExtensions在名为 ShouldNotMap的类上查找方法。有 ShouldBeIgnored,但我不想测试IgnoreRoute调用。我想测试一个特定的传入路由不应该映射到任何资源。

有没有办法使用 MvcContrib TestHelper 做到这一点?

更新

刚刚试过这个,它似乎工作。这是正确的方法吗?

0 投票
0 回答
208 浏览

asp.net-mvc - 这是 MvcContrib TestHelper OutBoundUrl 类中的错误吗?

我正在尝试使用 MvcContrib TestHelper 的静态OutBoundUrl类测试 MVC 区域中操作方法的出站 URL。这是我所拥有的:

我进入源代码,发现UrlHelper出站 URL 返回 null。基本上它会创建一个新的 UrlHelper 并将任务委托给UrlHelper.Action(action, controller, routeValues).

调用时,routeValues不包含任何内容(操作方法不接受任何参数)。这是一个错误吗?还是我需要做一些额外的事情来使这项工作与区域一起工作?在单元测试中,以下行位于上述行之前,因此我的路由已注册(UrlHelper.RouteCollection包含 100 多个路由)。

路线没有命名,我也不想命名,所以请不要建议我使用该OfRouteNamed方法。

更新

我做了一个可以工作的扩展方法,除了一件事。该OutBoundController Of<TController>方法具有以下代码:

该方法中有类似但截然不同的代码RouteTestingExtensions ShouldMapTo<TController>

如果您使用,ActionName()扩展方法会很棒ActionNameAttributes

回到问题......这是设计使然,如果是这样,为什么?OutBoundUrl不使用扩展的事实.ActionName()是让我无法编写扩展方法来为用[ActionName].

0 投票
2 回答
756 浏览

asp.net-mvc-3 - 将 T4MVC 与 MvcContrib.TestHelper AssertViewRendered 一起使用时如何测试默认视图

我在我的 ASP.NET MVC 3 项目中使用 T4MVC。我有以下基本测试:

如果控制器方法返回默认视图,则测试失败:

给出的错误是:

但是,如果我覆盖View指定viewName要返回的内容,则测试通过:

我尝试使用以下断言,但仍然不走运:

引发以下错误:

然后我意识到我误读了断言失败,所以我将测试更改为:

测试通过了,但测试本身似乎毫无用处。

最好我不想按名称指定所有视图,那么我该如何测试呢?为了澄清,我使用的是我今天从 NuGet 安装的MvcContrib.Mvc3.TestHelper-ci 3.0.96.0 。

更新

这不是问题的答案,但我已经开始执行以下操作,这提供了作为测试用例的更多价值:

0 投票
1 回答
67 浏览

asp.net-mvc-3 - 通过 TestHelper 测试路由约束

我有下一个路由。

这是测试它的测试。

现在我想测试约束。所以 url "~/Companies/df" 不应该映射到控制器。

有谁知道如何测试它?

0 投票
1 回答
1044 浏览

unit-testing - MVCContrib TestHelper 和 User.Identity.Name、Server.MapPath 和表单集合

我是 MVCContrib Testhelper 的新手并使用 Rhino 进行模拟。

我需要帮助对依赖于 User.Identity.Name、Server.MapPath 和表单集合的控制器进行单元测试。

我从

我发现这篇文章用于设置 User.Identity.Name

此时,在我的控制器中,我现在可以访问 User.Identity。然后问题变成了我如何设置表单集合变量。环境

不再工作。看来现在我必须通过

这似乎可行,但此时,我不再使用上面的 builder(TestControllerBuilder)。

然后我不得不模拟引发更多问题的服务器。我怎样才能继续使用构建器,但对 httpContext、HttpRequest、Server 等使用模拟或存根。我有点期待构建器有方法来设置 HttpRequest、Server 等的预期值。

谢谢

0 投票
2 回答
1035 浏览

asp.net-mvc - 如何测试只能通过 HTTP POST 访问 MVC 操作?

我正在使用 MvcContrib-TestHelper 来测试我的应用程序上的路由。我有一个仅限于 HTTP POST 的操作:

这是一个应该失败的测试示例:

但是,测试通过了!我还看到了另一个未回答的问题(对不起,错误的链接),其中也提出了这个问题,而且似乎功能被破坏了。测试这条路线是否只能通过 POST 访问的更好方法是什么?

0 投票
1 回答
363 浏览

unit-testing - 运行时使用 MvcContrib 对控制器和视图进行单元/集成测试会引发错误

我对测试 MVC 4 Web 应用程序的世界相当陌生,并且一直在尝试对视图和控制器进行单元测试,以查看对于给定控制器的操作是否呈现特定视图,我一直在使用 MvcContrib TestHelper 来尝试简单的过程测试应用程序,但到目前为止一直无法通过测试。

运行测试时,我收到错误Expected view name was 'index' actual was ''

目前我正在运行这个测试方法:

控制器和模型当前都被应用程序使用,想知道您是否可以就如何让这个测试工作提供任何建议,我之前已经修改过,当我这样做时我得到另一个错误,路由名称已经存在于集合中.

0 投票
1 回答
754 浏览

c# - 使用“在解决方案中运行所有测试”时测试失败

我正在尝试为我的 MVC 4 Web 应用程序项目成功运行单元测试。

当我单独运行测试类时,所有测试都通过了,当我在解决方案中运行所有测试仅通过 2/9 时,我单击了 Debug Checked Tests 并且当我再次点击运行时它们都通过了,它们也都通过了。

当我将项目签入 TFS 时,这个问题也会被复制,我已经设置了他们项目构建的持续集成,运行测试并在完全相同的测试中失败。

我回来的错误是*“名为''的路由已经在路由集合中”

有人知道为什么会发生这种情况吗?

在每个类中,我都有一个 [TestInitialize] 块,如下所示:

当我没有包含 TestControllerBuilder 时,我在类中遇到了类似的错误,可能是这段代码运行不正确吗?