Вот тест, который я написал:
[Test]
public void Can_Generate_Links_To_Other_Pages()
{
//Arrange: We're going to extend the Html helper class.
//It doesn't matter if the variable we use is null
HtmlHelper html = null;
PagingInfo pagingInfo = new PagingInfo(){
CurrentPage = 2,
TotalItems = 28,
ItemsPerPage = 10
};
Func<int, String> pageUrl = i => "Page" + i;
//Act: Here's how it should format the links.
MvcHtmlString result = html.PageLinks(pagingInfo, pageUrl);
//Assert:
result.ToString().ShouldEqual(@"<a href=""Page1"">1</a><a class=""selected"" href=""Page2"">2</a><a href=""Page3"">3</a>");
}
Пожалуйста, обратите внимание, как я жестко кодирую, как должны выглядеть ссылки, что, на мой взгляд, является хорошей идеей для теста, потому что в таком случае, если он не выглядит так, как я его представляю, тест провалится.
Я понимаю , почему этот тест работает, ведь мой маршрут в global.asax.cs:
routes.MapRoute(
null,
"Page{page}",
new { controller = "Products", action = "List" }
);
Отлично - но теперь, если я изменю этот маршрут на:
routes.MapRoute(
null,
"page/{page}",
new { controller = "Products", action = "List" }
);
Изменение URL, как и ожидалось, верно? Но тест по-прежнему проходит. Поскольку я жестко запрограммировал, как должен выглядеть URL в тесте, я понимаю, что тест не пройден, верно?
Я что-то упустил?
Я уже очистил проект и перестроил его, используя новый маршрут, но тест все еще проходит.
Мне действительно любопытно, спасибо!