- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 MvcContrib 的 ShouldMapTo 函数进行路由测试时遇到预期错误。根据结果,一切都很好,但助手抛出了一个 AssertionException ,不幸的是消息稀疏。我正在使用 MVC1 和相应的 MvcContirb。
[Test]
public void ThisShouldNotErrorButItDoes()
{
"~/District/ParticipantInfo/1907/2010".Route().Values.ToList().ForEach(r => Console.WriteLine(r.Key + ": " + r.Value));
Console.WriteLine(((Route)"~/District/ParticipantInfo/1907/2010".Route().Route).Url);
"~/District/ParticipantInfo/1907/2010".ShouldMapTo<DistrictController>(c => c.ParticipantInfo(1907, 2010));
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Participation",
"{controller}/{action}/{districtNumber}/{surveyYear}",
new { controller = "District", action = "ParticipantInfo" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = string.Empty }); // Parameter defaults
}
最佳答案
可能您已经解决了一些问题,但可能还有其他一些人遇到了这个问题而没有得到任何帮助。所以我想我会尝试提供一些关于这个问题的信息。
不得不承认,我自己也纠结过这个问题。
请让我引用另一个论坛以获得一些见解。
Jonathan McCracken(我非常喜欢的“Test-Drive ASP.NET MVC”的作者):
MVC Contrib does not map parameters, that’s up to model binding which can be tested separately. So in these cases where you have parameters you need to pass null and then your test will pass.
Here is the solution:
[TestFixture]
public class RouteDefinitionsTest
{
[SetUp]
public void setup()
{
var routes = RouteTable.Routes;
routes.Clear();
RouteDefinitions.AddRoutes(routes);
}
[Test]
public void Should_Route_To_Edit_Page_With_Title()
{
"~/Todo/Edit".
ShouldMapTo<TodoController>(x => x.Edit(null));
}
}
Course you’ll need to add RouteDefinitions to your Web project as well which is here:
public class RouteDefinitions
{
public static void AddRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = string.Empty} // Parameter defaults
);
}
}
I just extracted this out of the Global.asax.cs file, so now that needs to change to the following:
public static void RegisterRoutes(RouteCollection routes)
{
RouteDefinitions.AddRoutes(routes);
}
来源(2010 年 7 月 21 日):
http://forums.pragprog.com/forums/124/topics/4824
public static RouteData ShouldMapTo<TController>(this RouteData routeData, Expression<Func<TController, ActionResult>> action)
where TController : Controller
{
Assert.That(routeData, Is.Not.Null, "The URL did not match any route");
//check controller
routeData.ShouldMapTo<TController>();
//check action
var methodCall = (MethodCallExpression) action.Body;
string actualAction = routeData.Values.GetValue("action").ToString();
string expectedAction = methodCall.Method.Name;
actualAction.AssertSameStringAs(expectedAction);
//check parameters
for (int i = 0; i < methodCall.Arguments.Count; i++)
{
string name = methodCall.Method.GetParameters()[i].Name;
object value = ((ConstantExpression) methodCall.Arguments[i]).Value;
Assert.That(routeData.Values.GetValue(name), Is.EqualTo(value.ToString()));
}
return routeData;
}
来源(2008 年 11 月 25 日):
http://flux88.com/blog/fluent-route-testing-in-asp-net-mvc/ (可能有点过时了)
关于MvcContrib ShouldMapTo TestHelper 意外抛出 AssertionException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891526/
我在使用 MvcContrib 的 ShouldMapTo 函数进行路由测试时遇到预期错误。根据结果,一切都很好,但助手抛出了一个 AssertionException ,不幸的是消息稀疏。我正在
我刚刚开始使用 MvcContrib 中的 TestHelpers。我想尝试在我的 Controller 上测试一个操作方法,该方法本身会测试 IsAjaxRequest() 是否为真。 我使用了 T
我正在尝试使用 MvcContrib 测试助手来测试 MVC3 中的 Controller 方法。 Controller : public class HomeController : Control
我的设置是这样的。我有项目A ,以及一个取决于 A 的测试项目: A test-jar) 。 关于unit-testing - 解决测试、testhelper 和被测项目之间的 Maven 循环依赖关
我已经使用 nuget 和通常的安装包 mvccontrib 安装了 mvccontrib,但我注意到那里没有 testhelper。我是否必须使用其他方式或标志来安装它。 尝试安装包 mvccont
在尝试实现 previous question 的第二个答案时,我收到错误消息。 我已经按照帖子显示的方法实现了这些方法,并且前三个工作正常。第四个(HomeController_Delete_Act
在 MvcContrib.TestHelper.RouteTestingExtensions 上找了一个方法名为 ShouldNotMap 的类。有应该被忽略,但我不想测试 IgnoreRoute调用
我正在尝试使用 MvcContrib.TestHelper 测试我的 MVC4 站点的路由。当我做这样的事情时: "~/".ShouldMapTo(x => x.Index()); 我有一个类似“Sy
我使用的是 Rails 5.1.6 和 Ruby 2.5.1(虽然在以前的版本中有同样的错误)。 将邮件程序从 deliver_now 切换到 deliver_later。在我的浏览器中运行良好,但是
我正在构建一个 Rails JSON API 并尝试编写测试以确保没有有效 auth_token 的请求得到 401 状态。 我在我的 spec_helper.rb ( config.include
在使用 Devise TestHelpers 的文档中,它声明使用诸如... @request.env["devise.mapping"] = Devise.mappings[:admin] 或者 @
我正在尝试使用 MvcContrib.TestHelper ShouldMapTo 对我的路由进行单元测试() 扩展方法,但我的测试失败并显示以下错误消息: failed: Method MvcCo
FluentValidation.TestHelper 命名空间中的扩展方法 .ShouldHaveChildValidator() 没有采用模型的重载。在使用 When() 子句时,如何测试子验证器
我正在尝试在 ASP.NET MVC 3 中对 Controller 上的编辑操作进行单元测试。 我已经通过 nuget 安装了 Mvcontrib.MVC3.TestHelper 来模拟我的 Con
我正在使用 MvcContrib.TestHelper,并像这样初始化我的 Controller : var accountController = new AccountController();
我在我的 ASP.NET MVC 3 项目中使用 T4MVC。我有以下基本测试: [TestMethod] public void IndexReturnsIndexView() { var
自安装 Rails 5 以来,我正在开发我的第一个应用程序。当我运行我的 Controller 操作规范时,我收到了下面的警告消息,尽管我的所有测试都通过了。 [Devise] including `
嗨,我正在尝试对我的 Controller 上的注销操作进行单元测试,但是我很难在 HttpContext 中测试或 stub 我的 session 。我正在使用 MVC Contrib TestHe
我是一名优秀的程序员,十分优秀!