问题标签 [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.
asp.net-mvc - 使 mvccontrib testhelper 与将路由数据自动映射到对象的操作一起工作
这是 ASP.NET MVC v1(尚未使用 v2)
我有一个这样的路线条目:
以及与之匹配的操作:
它完美地工作 - mvc 框架知道将 searchQuery 和 listingType 映射到具有相同名称的 QueryParameters 对象的两个属性上。
我的问题是单元测试。我正在使用 Mvccontrib 项目并喜欢 ShouldMapTo 方法:
虽然它不起作用!我曾经对我的操作有特定的参数,如下所示:
哪个有效(显然,单元测试会尝试使用两个参数(字符串)而不是这个对象映射到搜索。
有没有人知道如何解决这个问题,而不是回到将所有属性写为参数。属性的 mvc 自动映射很重要,但我希望有某种方法可以让 mvccontribs testhelper 也可以使用它。
asp.net-mvc - 如何使用 MvcContrib.TestHelper 测试 asp.net mvc 发布操作
我正在尝试使用出色的 MvcContrib.TestHelper 测试我的路由配置,但遇到了问题。
请假设我的路由配置已正确设置并在 TestFixture 中进行了初始化。
我有一个名为 Create 的控制器 (TransactionsController) 操作,它采用 TransactionRecord 类型的输入参数:
目前我的测试如下:
我的问题是 Create() 方法采用 TransactionRecord 类型的参数,我不知道如何将其合并到我的测试中。
我找不到任何这种性质的例子。
asp.net-mvc - 使用 MvcContrib.TestHelper 的 ShouldMapTo() 通用扩展方法需要错误帮助
我正在尝试使用 MvcContrib.TestHelper ShouldMapTo <TController>
() 扩展方法对我的路由进行单元测试,但我的测试失败并显示以下错误消息:
但 ReviewController 确实满足约束。它继承自一个名为 SmartController 的类,该类继承自 System.Web.Mvc.Controller。因此,我不知道如何解决此错误。
这是我的单元测试:
这是 ReviewController 类的声明:
以及 SmartController 类的声明:
只是为了笑,我尝试从继承层次结构中删除 SmartController,以便 ReviewController 直接从 Controller 继承,但仍然抛出错误。
有谁知道我做错了什么?
asp.net-mvc - 单元测试 UrlHelper 扩展方法
我正在尝试创建单元测试以确保我的 UrlHelper 扩展方法有效?有谁知道如何做到这一点?我正在使用 MVC 1.0 和 MvcContrib。我可以测试路线,但不能测试这样的代码:
c# - 如何使用查询字符串测试 URL 的路由/操作解析?
我试图在我的单元测试中使用如下代码,
问题是,这是失败的“预期结果是结果?searchText = x”
有没有人有一个解决方案可以让我测试一个 URL(带有查询字符串)是否解析为正确的控制器、操作和参数?
仅供参考,我在 Global.asax.cs 中没有明确的路由设置,因为默认路由适用于实际应用程序 - 它在此测试中不起作用。
asp.net - 关于 MvcContrib TestHelpers 的新手问题
我刚开始在 MvcContrib 中使用 TestHelpers。我想尝试在我的控制器上测试一个操作方法,该方法本身测试 IsAjaxRequest() 是否为真。
我使用了 TestHelper 示例中显示的相同代码来设置 TestControllerBuilder
所以 _controller 里面有所有伪造/模拟的 HttpContext,这真的很棒。但是我现在该怎么做才能强制内部伪造的 Request 对象上的 IsAjaxRequest() 返回 true?
asp.net-mvc - 使用 MVCContrib TestHelper 时出错
在尝试执行上一个问题的第二个答案时,我收到一个错误。
正如帖子所示,我已经实现了这些方法,并且前三个工作正常。第四个(HomeController_Delete_Action_Handler_Should_Redirect_If_Model_Successfully_Delete)给出了这个错误:在结果的值集合中找不到名为“控制器”的参数。
如果我将代码更改为:
它工作正常,但我不喜欢那里的“魔术字符串”,更喜欢使用其他海报使用的 lambda 方法。
我的控制器方法如下所示:
我究竟做错了什么?
c# - 使用 Automapper 映射 ViewModel 后,我应该如何测试以及测试什么?
我正在尝试测试Index
控制器的操作。该操作使用AutoMapper将域Customer
对象映射到视图模型TestCustomerForm
。虽然这可行,但我担心测试我从Index
操作中收到的结果的最佳方法。
控制器的索引操作如下所示:
它TestMethod
看起来像这样:
在CreateTestController
我Rhino.Mocks
用来模拟客户存储库并将其设置为从SetupCustomerForRepository
. 通过这种方式,我知道存储库将在Index
操作调用时返回预期的客户_repository.GetCustomerByLogin(CurrentUserLoginName)
。因此,我认为断言相等的计数足以满足IndexShouldReturnCustomerWithMachines
.
所有这些都表明我担心我应该测试什么。
- 铸造
result.ViewData.Model as TestCustomerForm
. 这真的是一个问题吗?这让我很担心,因为在这种情况下,我并没有真正进行测试驱动开发,而且似乎我指望特定的实现来满足测试。 - 是否有更合适的测试来确保正确的映射?
- 我应该测试每个映射的属性
TestCustomerForm
吗? - 我应该做更一般的控制器动作测试吗?
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。
这是测试
我错过了什么?
rhino-mocks - MvcContrib TestHelpers 似乎没有提供完整的 HTTPContext.Server 对象
所以 MvcContrib TestHelpers 创建以下的模拟版本
- HttpContext
- HttpRequest
- HttpResponse
- HttpSession
- 形式
- 临时数据
- 请求参数
- 应用路径
- 路径信息
使用这种代码时在假控制器中
但是你会注意到他们没有创建一个假的/模拟的服务器对象。大概有一个很好的理由为什么不这样做。但是我试图删除 Server.MapPath() 方法,因为我的 SUT 中的方法使用它,当然在测试期间它返回 NULL。
TestHelpers 使用 rhino 模拟(v3.5),我也是。我知道存根方法的语法,但是如何将服务器假/模拟对象放入我的控制器中,以便我可以存根方法?