- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Rhino.Mocks
来模拟 ControllerContext
对象,以访问 Controller 单元中的用户、请求、响应和 session 等运行时对象测试。我编写了以下方法来尝试模拟 Controller 。
private TestController CreateTestControllerAs(string userName)
{
var mock = MockRepository.GenerateStub<ControllerContext>();
mock.Stub(con =>
con.HttpContext.User.Identity.Name).Return(userName);
mock.Stub(con =>
con.HttpContext.Request.IsAuthenticated).Return(true);
var controller = CreateTestController(); // left out of example for brevity
controller.ControllerContext = mock;
return controller;
}
但是,我模拟的 ControllerContext 的 HttpContext
为 null,并且我尝试访问 HttpContext.User
等会导致 System.NullReferenceException
.
我的 mock 做错了什么?
最佳答案
我强烈建议您查看MVCContrib.TestHelper它使用 Rhino.Mocks
并提供了一种测试 Controller 的优雅方法。您的测试可能如下所示:
[TestClass]
public class UsersControllerTests : TestControllerBuilder
{
[TestMethod]
public void UsersController_Index()
{
// arrange
// TODO : this initialization part should be externalized
// so that it can be reused by other tests
var sut = new HomeController();
this.InitializeController(sut);
// At this point sut.Request, sut.Response, sut.Session, ... are
// stubed objects on which you could define expectations.
// act
var actual = sut.Index();
// assert
actual.AssertViewRendered();
}
}
这是一个 unit test对于controller这是 sample ASP.NET MVC application 的一部分我写的。
关于asp.net-mvc - 如何使用 Rhino.Mocks 来模拟 ControllerContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3080814/
我正在使用 MOQ 框架,我有以下单元测试,它失败并在下面的代码行显示以下错误消息“对象引用未设置为对象的实例” viewCxt.View.Render(viewCxt, writer); 谁能指出
我有这个 MVC4 Controller (ControllerB): public class MyControllerB : Controller { public bool Check(
我有一个用 .net Core mvc6 编写的项目。我有一个“HideExeptionsMiddleware”,其目标是在万不得已的情况下捕获未在 Controller 中处理的抛出异常,并将用户重
在为Controller编写单元测试的过程中,我需要设置或初始化- ControllerContext.HttpContext.Request.QueryString 最简单的设置方法是什么,以便我可
鉴于我只能访问 ControllerContext 而不能访问 Action____Contexts 获取当前正在执行的 ActionDescriptor 的最佳方法是什么? 到目前为止,我找到的唯一
我正在使用 Rotativa 从 Action / View 生成 PDF,效果很好。然而,是否可以在模型内部使用它,或者您可以纯粹在 Controller 中使用它吗? 问题是函数想要使用模型没有的
我想测试我的 MVC 应用程序,我想模拟 HttpContext。我正在使用 Moq 框架,这是我为模拟 HttpContext 所做的: [SetUp] public void Setup() {
我正在开发一个生成大型复杂报告的 ASP.NET MVC 4 Web 应用程序。我想编写渲染 View 的单元测试,以确保 View 不会因模型而崩溃: [Test] public void Ex
是否可以从 ControllerContext 实例获取 Action 结果类型(ViewResult、JsonResult 等)? 最佳答案 不,这是不可能的。 Controller 的运行时间比任
Rotativa 1.6.4 不断在 Rotativa.dll 中发出 System.NullReferenceException 具体来说,它发生在 BuildPdf(context) 上 我尝试过
我正在尝试创建集成测试以确保我的 View 中没有任何运行时错误。因此,我需要创建一个测试来检查 ViewResult.ExecuteResult() 是否正常工作,但我似乎遇到了麻烦。 我找到了 t
我读过 HTTPContext和 ControllerContext在 MVC (基础书),但我不知道究竟是什么 HTTPContext和 ControllerContext . 有人可以解释这些方法
我想在我的 Controller 中测试一个 Action ,该 Action 使用 controllerContext 作为参数来生成基于第 3 部分库“Rotativa”的 pdf 文档。 这是
我在我的 MVC3 应用程序中使用 Rotativa 将 pdf 生成到内存流中,然后作为电子邮件附件通过电子邮件发送出去。这工作正常,但速度很慢(只有 1 个用户约 5-7 秒),所以我一直试图将它
我正在尝试使用 Rhino.Mocks 来模拟 ControllerContext 对象,以访问 Controller 单元中的用户、请求、响应和 session 等运行时对象测试。我编写了以下方法来
我们有一个可插入的框架,它返回将内容呈现给浏览器的 ActionResult 对象。一项最新的要求是我们的插件应该可以从常规 ASP.NET Web 窗体应用程序调用。 到目前为止,我已经想到了这个,
我正在尝试将 SagePayMvc.dll 集成到一个 ASP.NET Web API 项目中,该项目需要传递 ControllerContext.RequestContext 以形成通知 Url。
我正在使用以下方法呈现 PartialViews/Models,以便为发送出去的电子邮件制作模板。 我正在使用下面的代码将部分和模型转换为 html 字符串,我可以将其传递给我的电子邮件发送代码。 p
我想知道在 Azure 设置中使用 ControllerContext 与 HttpContext 之间是否有任何影响。我发现 HttpContext 是线程静态的,我正在尝试找出这在 Azure 中
是否有一种简单的方法来模拟 IIdentity.GetUserId 和 IIdentity.IsAuthenticated? 我已经通过这种方式进行了测试并得到了一个NotSupportedExcep
我是一名优秀的程序员,十分优秀!