ASP.NET MVC 3
とNUnit
を使用しています。文字列を返すときにURLヘルパーメソッドのテストが失敗する
Iは、(オーバーロードされたメソッド)として作用する方法を返すようにするヘルパーメソッドを作成した:
public static object CategoryIndex(this UrlHelper urlHelper)
{
return new { controller = "Category", action = "Index" };
}
public static string CategoryIndex(this UrlHelper helper, int categoryId)
{
return helper.RouteUrl(new { controller = "Category", action = "Index", id = categoryId });
}
失敗してテストがCategoryIndex_should_navigate_to_category_index_action_method_with_child_category_id()
と呼ばれる第二の試験です。
private HttpContextBase httpContextBaseStub;
private RequestContext requestContext;
private UrlHelper urlHelper;
[SetUp]
public void SetUp()
{
httpContextBaseStub = MockRepository.GenerateStub<HttpContextBase>();
requestContext = new RequestContext(httpContextBaseStub, new RouteData());
urlHelper = new UrlHelper(requestContext);
}
[Test]
public void CategoryIndex_should_navigate_to_category_index_action_method()
{
// Act
object actual = UrlHelperNavigationExtensions.CategoryIndex(urlHelper);
// Assert
RouteValueDictionary routes = new RouteValueDictionary(actual);
Assert.AreEqual("Category", routes["controller"]);
Assert.AreEqual("Index", routes["action"]);
}
[Test]
public void CategoryIndex_should_navigate_to_category_index_action_method_with_child_category_id()
{
// Arrange
int childCategoryId = 1;
// Act
string actual = UrlHelperNavigationExtensions.CategoryIndex(urlHelper, childCategoryId);
// Assert
Assert.AreEqual("/Category/Index/1", actual);
}
実際にはnullであると訴えています。どうしてこのようになり、どうすればそれを修正するのだろうか?
これに対してルーティングルールを投稿できますか? – Iridio
@Iridio:新しいプロジェクトを追加するときのデフォルトルールがあります。 –