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

asp.net-mvc-2 - session.clear、session.abandon 和 Rhino Mock 的 MVCContrib TestHelper 问题

您好我正在尝试对我的控制器上的注销操作进行单元测试,但我很难在 HttpContext 中测试或存根我的会话。我正在使用MVC Contrib TestHelper使它更容易,但现在我需要一点帮助。

这是我的测试:

你可以看到我的不同尝试。我收到一条错误消息,告诉我 Session.Abandon() 未实现,当您查看 MVCContrib 的 TestHelper 时,女巫是正确的。但是我怎样才能模拟或存根已经被 TestHelper 模拟的会话呢?

NUnit 中的异常:

System.NotImplementedException :方法或操作未实现。在 MvcContrib.TestHelper.MockSession.Abandon()

感谢您的帮助!

编辑:这是新的工作测试

0 投票
1 回答
841 浏览

mvccontrib - 无论如何都要用 nuget 安装 mvccontrib.testhelper

我已经使用 nuget 和通常的安装包 mvccontrib 安装了 mvccontrib,但我注意到那里没有 testhelper。我必须使用其他方式或标志来安装它吗?

尝试 install-package mvccontrib.testhelper 不起作用...

很高兴收到任何想法

0 投票
1 回答
619 浏览

asp.net-mvc - 使用视图模型测试获取操作

我有以下控制器操作:

以及相应的测试:

在 NUnit GUI 中,我收到以下错误:

MyProject.Web.UnitTests.Controllers.NewsControllerTests.Edit_should_render_view: MvcContrib.TestHelper.AssertionException : 是 MyProject.Web.Common.ViewData.NewsEditModel 但预期 MyProject.Web.Common.ViewData.NewsEditModel

我不知道如何编写相应的单元测试。有人可以帮帮我吗?

0 投票
1 回答
243 浏览

asp.net-mvc - 简单的宁静路由

为什么要使用 MVCContrib 中的 Simply Restful Routing 之类的东西?创建新项目时,为什么需要一个名为 New 的操作方法和一个用于处理名为 Create 的发布请求的操作方法?为什么不只创建两个名为 Create 的方法?编辑和删除也是如此。

0 投票
1 回答
1800 浏览

asp.net-mvc - 单元测试期间的 Mvcontrib.MVC3.Testhelper UpdateModel NullReferenceExceuption

我正在尝试在 ASP.NET MVC 3 中对我的控制器上的编辑操作进行单元测试。

我已经通过 nuget 安装了 Mvcontrib.MVC3.TestHelper 来模拟我的控制器上下文,但我仍然收到 NullReferenceException

我的代码如下所示:

生产代码看起来像这样......

即使我使用 UpdateModel 或 TryUpdateModel 它总是会因 NullReferenceException 而崩溃......

任何帮助,指针都会很棒......

0 投票
1 回答
923 浏览

asp.net-mvc - 使用 MVCContrib 测试助手测试编辑视图

我正在使用 ASP.NET MVC 3、MVCContrib、NUnit 和 Rhino Mocks。我已经发布了这个但无法得到答案。人们更多地关注我的编码,以帮助我获得一个体面的答案以通过此测试。

我正在尝试测试我的编辑视图。我不确定如何为视图编写测试代码。它是 NewsEditViewData 类型的强类型视图。

当视图加载时,它通过 ID 从新闻服务中获取新闻项的数据。所以在我的测试中,我创建了一个新闻服务的存根:

现在我需要将此新闻项映射到 NewsEditViewData。我有一个映射器(AutoMapper)为我做这件事,在我的测试中我做了以下事情:

我不确定到目前为止我是否走在正确的轨道上?

然后我有以下代码:

不要从我的代码中工作,我想要一个遵循最佳实践的答案。那么我需要在断言部分检查什么?我是否还需要检查记录是否已返回?我的想法是这样的:

这失败了。有人可以帮我重写这个测试,让它通过。我希望它检查所有需要检查的内容。

这是完整的测试:

2011-02-14 更新:

在我的 NewsController 我有以下内容:

动作方法如下所示:

我在 NUnit 中遇到的错误是:

MyProject.Web.UnitTests.Controllers.NewsControllerTests.Edit_RenderView_EditView: MvcContrib.TestHelper.AssertionException : 是 MyProject.Web.Common.ViewData.NewsEditViewData 但预期 MyProject.Web.Common.ViewData.NewsEditViewData

0 投票
0 回答
95 浏览

asp.net-mvc - 如何使用 MVCContrib Route TestHelper 验证操作方法的参数

我有一个以分页对象为参数的操作方法

那么如何验证 url 以匹配操作方法及其参数呢?像下面

更新

这是路由定义的样子,Page、PageSize 和 Sort 是 Paging 类的成员

0 投票
2 回答
1410 浏览

c# - 为什么 mvccontrib 的 AssertViewRendered().ForView("Edit") 由于视图名称是完整的 cshtml 路径而失败?

我有以下单元测试:

这应该会通过,因为 Add 操作正在返回 Edit 视图。但是,此断言失败,并出现以下异常

为什么视图名称作为完整路径名称返回?这可能是因为我使用了 T4MVC,如果是这样,我怎样才能让它通过?


编辑添加视图如下所示:

0 投票
2 回答
492 浏览

asp.net-mvc - 我可以将 Moq 与 MvcContrib.TestHelper 一起使用吗?

我正在开发我的第一个 ASP .NET MVC 项目,在此之前我只将 Rhino.Mocks 用于桌面应用程序。

已经有一段时间了,所以我决定找出现在在该领域使用的东西。在阅读了一些对Moq
的 赞美之后,我决定接受它。 (我喜欢某些人所说的 lambda 误用和过度使用)。

然而,我也听到了对MvcContrib TestHelper框架的赞誉,它似乎依赖于 Rhino.Mocks

我需要知道TestHelper 是否强制我使用 Rhino.Mocks。我不想在我的测试中混合两个不同的模拟框架,所以如果 TestHelper 是 Rhino 特定的,我将不得不决定要么

  • 为了 TestHelper 切换到 Rhino.Mocks(可悲但可能);
  • 为了使用起订量而放弃 TestHelper(不太可能)。

我真的希望 TestHelper 在其公共 API 中独立于 Rhino.Mocks,但我不能 100% 确定。
有人可以(不)确认吗?

0 投票
2 回答
400 浏览

asp.net-mvc-3 - T4MVC 和使用 MvcContrib.TestHelpers 进行测试的静态链接内容问题

我正在尝试围绕之前编写的一些代码编写一些测试,然后再开始使用它。我遇到了控制器方法引用 T4MVC 为图像和链接创建的一些静态变量的问题。这实际上与我之前的问题相同,但它不在构造函数中。

问题是这样的代码:

问题是 Links.Content.Images.openwhite_gif,在 T4MVC 生成的代码中,它从静态方法 ProcessVirtualPath 调用 VirtualPathUtility.ToAbsolute。我似乎无法模拟 ProcessVirtualPath 或 VirtualPathUtility。

现在 ProcessVirtualPath 上方的评论说它是通过委托调用的,以允许将其替换以进行单元测试。代表是:

如何替换为 ProcessVirtualPath 调用的内容以允许单元测试。我不在乎它是否真的有一条有效的路径,我只是不想让它爆炸。我可以从我的测试方法中做到这一点吗?没有更改代码来测试它是否在非测试项目中调试?

还有一个相关的问题是上面的一段代码的最佳实践是什么?哪里应该有基于权限的条件的代码?甚至是动作链接。我不确定他们为什么在 viewdata 模型中。


好的,我确实让它与评论中提到的代码一起工作。

仅当测试单独运行时,如果与另一个使用 TestControllerBuilder 类且未设置它的测试一起运行,任何需要此测试的测试都会失败。为什么?