问题标签 [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 回答
386 浏览

asp.net-mvc - 使 mvccontrib testhelper 与将路由数据自动映射到对象的操作一起工作

这是 ASP.NET MVC v1(尚未使用 v2)

我有一个这样的路线条目:

以及与之匹配的操作:

它完美地工作 - mvc 框架知道将 searchQuery 和 listingType 映射到具有相同名称的 QueryParameters 对象的两个属性上。

我的问题是单元测试。我正在使用 Mvccontrib 项目并喜欢 ShouldMapTo 方法:

虽然它不起作用!我曾经对我的操作有特定的参数,如下所示:

哪个有效(显然,单元测试会尝试使用两个参数(字符串)而不是这个对象映射到搜索。

有没有人知道如何解决这个问题,而不是回到将所有属性写为参数。属性的 mvc 自动映射很重要,但我希望有某种方法可以让 mvccontribs testhelper 也可以使用它。

0 投票
1 回答
1143 浏览

asp.net-mvc - 如何使用 MvcContrib.TestHelper 测试 asp.net mvc 发布操作

我正在尝试使用出色的 MvcContrib.TestHelper 测试我的路由配置,但遇到了问题。

请假设我的路由配置已正确设置并在 TestFixture 中进行了初始化。

我有一个名为 Create 的控制器 (TransactionsController) 操作,它采用 TransactionRecord 类型的输入参数:

目前我的测试如下:

我的问题是 Create() 方法采用 TransactionRecord 类型的参数,我不知道如何将其合并到我的测试中。

我找不到任何这种性质的例子。

0 投票
1 回答
1561 浏览

asp.net-mvc - 使用 MvcContrib.TestHelper 的 ShouldMapTo() 通用扩展方法需要错误帮助

我正在尝试使用 MvcContrib.TestHelper ShouldMapTo <TController>() 扩展方法对我的路由进行单元测试,但我的测试失败并显示以下错误消息:

但 ReviewController 确实满足约束。它继承自一个名为 SmartController 的类,该类继承自 System.Web.Mvc.Controller。因此,我不知道如何解决此错误。

这是我的单元测试:

这是 ReviewController 类的声明:

以及 SmartController 类的声明:

只是为了笑,我尝试从继承层次结构中删除 SmartController,以便 ReviewController 直接从 Controller 继承,但仍然抛出错误。

有谁知道我做错了什么?

0 投票
2 回答
2180 浏览

asp.net-mvc - 单元测试 UrlHelper 扩展方法

我正在尝试创建单元测试以确保我的 UrlHelper 扩展方法有效?有谁知道如何做到这一点?我正在使用 MVC 1.0 和 MvcContrib。我可以测试路线,但不能测试这样的代码:

0 投票
2 回答
1965 浏览

c# - 如何使用查询字符串测试 URL 的路由/操作解析?

我试图在我的单元测试中使用如下代码,

问题是,这是失败的“预期结果是结果?searchText = x”

有没有人有一个解决方案可以让我测试一个 URL(带有查询字符串)是否解析为正确的控制器、操作和参数?

仅供参考,我在 Global.asax.cs 中没有明确的路由设置,因为默认路由适用于实际应用程序 - 它在此测试中不起作用。

0 投票
2 回答
672 浏览

asp.net - 关于 MvcContrib TestHelpers 的新手问题

我刚开始在 MvcContrib 中使用 TestHelpers。我想尝试在我的控制器上测试一个操作方法,该方法本身测试 IsAjaxRequest() 是否为真。

我使用了 TestHelper 示例中显示的相同代码来设置 TestControllerBuilder

所以 _controller 里面有所有伪造/模拟的 HttpContext,这真的很棒。但是我现在该怎么做才能强制内部伪造的 Request 对象上的 IsAjaxRequest() 返回 true?

0 投票
1 回答
874 浏览

asp.net-mvc - 使用 MVCContrib TestHelper 时出错

在尝试执行上一个问题的第二个答案时我收到一个错误。

正如帖子所示,我已经实现了这些方法,并且前三个工作正常。第四个(HomeController_Delete_Action_Handler_Should_Redirect_If_Model_Successfully_Delete)给出了这个错误:在结果的值集合中找不到名为“控制器”的参数。

如果我将代码更改为:

它工作正常,但我不喜欢那里的“魔术字符串”,更喜欢使用其他海报使用的 lambda 方法。

我的控制器方法如下所示:

我究竟做错了什么?

0 投票
2 回答
2447 浏览

c# - 使用 Automapper 映射 ViewModel 后,我应该如何测试以及测试什么?

我正在尝试测试Index控制器的操作。该操作使用AutoMapper将域Customer对象映射到视图模型TestCustomerForm。虽然这可行,但我担心测试我从Index操作中收到的结果的最佳方法。

控制器的索引操作如下所示:

TestMethod看起来像这样:

CreateTestControllerRhino.Mocks用来模拟客户存储库并将其设置为从SetupCustomerForRepository. 通过这种方式,我知道存储库将在Index操作调用时返回预期的客户_repository.GetCustomerByLogin(CurrentUserLoginName)。因此,我认为断言相等的计数足以满足IndexShouldReturnCustomerWithMachines.

所有这些都表明我担心我应该测试什么。

  1. 铸造result.ViewData.Model as TestCustomerForm. 这真的是一个问题吗?这让我很担心,因为在这种情况下,我并没有真正进行测试驱动开发,而且似乎我指望特定的实现来满足测试。
  2. 是否有更合适的测试来确保正确的映射?
  3. 我应该测试每个映射的属性TestCustomerForm吗?
  4. 我应该做更一般的控制器动作测试吗?
0 投票
2 回答
1296 浏览

rhino-mocks - 尝试使用 MvcContrib 测试助手和 Rhino Mocks 3.5 存根 Server.MapPath

我正在使用 MvcContrib 的测试助手和 Rhino Mocks 3.5 来测试 ASP.NET MVC 操作方法。我像这样构建我的假控制器:

所以我得到了一个包含假 HTTP 服务器等的假控制器。

然后我试图像这样存根 Server.MapPath 方法

但在我的测试方法中,对 Server.MapPath("/APP_DATA/Files/") 的调用返回 null。

这是测试

我错过了什么?

0 投票
1 回答
679 浏览

rhino-mocks - MvcContrib TestHelpers 似乎没有提供完整的 HTTPContext.Server 对象

所以 MvcContrib TestHelpers 创建以下的模拟版本

  • HttpContext
  • HttpRequest
  • HttpResponse
  • HttpSession
  • 形式
  • 临时数据
  • 请求参数
  • 应用路径
  • 路径信息

使用这种代码时在假控制器中

但是你会注意到他们没有创建一个假的/模拟的服务器对象。大概有一个很好的理由为什么不这样做。但是我试图删除 Server.MapPath() 方法,因为我的 SUT 中的方法使用它,当然在测试期间它返回 NULL。

TestHelpers 使用 rhino 模拟(v3.5),我也是。我知道存根方法的语法,但是如何将服务器假/模拟对象放入我的控制器中,以便我可以存根方法?