Можно ли ссылаться на WebClient с моего контроллера MVC? - PullRequest
1 голос
/ 11 ноября 2010

Мне нужно загрузить страницу с моего контроллера и использовать для этого Webclient, что не является Mockable?Как мне проверить это или я могу просто оставить там прямую ссылку?

1 Ответ

3 голосов
/ 11 ноября 2010

Вы можете определить интерфейс хранилища и в реализации этого хранилища использовать WebClient. Тогда ваш контроллер будет работать с хранилищем, и, поскольку он является интерфейсом, его легко смоделировать. Теперь вы скажете, что это просто делегирование проблемы модульного тестирования реализации репозитория, который сейчас использует WebClient и который не является надёжным. Ответ на этот вопрос заключается в том, что это больше не модульное тестирование, а, откровенно говоря, тестирование такого метода:

public string FetchData(string url)
{
    using (var client = new WebClient())
    {
        return client.DownloadString(url);
    }
}

не имеет особого смысла, так как вы сейчас тестируете класс WebClient, который, я надеюсь, уже был сделан его авторами в Редмонде.

...