Как издеваться над IUrlHelper - PullRequest
0 голосов
/ 25 марта 2019

Начало работы с юнит-тестами может разочаровать, застревать в каждой детали.Надеюсь, что это улучшится, когда я получу больше опыта.

Теперь, как мне высмеивать IUrlHelper для модульного теста?

У меня есть этот простой метод для получения абсолютных путей в ASP.NET

public static string AbsolutePage(this IUrlHelper url, string pageName, string pageHandler = null, object routeValues = null)
{
    return url.Page(pageName, pageHandler, routeValues, url.ActionContext.HttpContext.Request.Scheme);
}

Легко манипулировать схемой

return Mock.Of<IUrlHelper>(x =>
    x.ActionContext.HttpContext.Request.Scheme == "http");

, но затем метод вызывает метод Page в IUrlHelper.Что мне теперь делать?

Я бы соблазнился пропустить небольшие разочаровывающие тесты, подобные этому, но я думаю, что важно быть энергичным при первом изучении.

1 Ответ

0 голосов
/ 25 марта 2019

Если вы все еще хотите проверить свой IUrlHelper, вы можете использовать этот код

var mocked = new Mock<IUrlHelper>();

mocked.Setup(x => x.Page(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<object>(), It.IsAny<string>()))
                    .Returns("whatever_string");

IUrlHelper helper = mocked.Object;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...