htmlunit .net MVC Views модульное тестирование - PullRequest
2 голосов
/ 05 октября 2011

Я использую htmlUnit из Java (преобразован для запуска в .net) Подробности здесь
Я использую ту же логику, что и в примере, использую веб-клиент, и это прекрасно работает с моим кодом / представлениями MVC3 Razor.
Проблема возникает, когда у меня есть [Authorize] над моими представлениями, так как веб-клиент не может получить доступ к странице. Это можно обойти? Как бы я (если это возможно) настроить автоматический вход в систему? Если я просто проанализирую страницу входа и сделаю отправку с паролем / паролем ... это будет перенесено на каждую страницу, посещенную в этой "сессии"

Я пробовал:

 [SetUp]
        public void Setup()
        {

            //Initiate WebClient
            webClient = new WebClient();

            //Login
            var loginPage = (HtmlPage)webClient.getPage(properties.DomainNameToTest + "Account/Logon/");
            ((HtmlInput)loginPage.getElementByName("UserName")).setValueAttribute(properties.adminUsername);
            ((HtmlInput)loginPage.getElementByName("Password")).setValueAttribute(properties.adminPassword);
            var action = (HtmlPage)loginPage.getElementByName("loginButton").click();

        }

Это отлично работает.

1 Ответ

1 голос
/ 05 октября 2011

HtmlUnit - это веб-браузер. У него просто нет графического пользовательского интерфейса: вы должны сказать ему, что делать с помощью кода. Если вы можете получить доступ к своей странице с помощью обычного веб-браузера, просто сделайте то же самое с HtmlUnit, и он будет работать как положено.

...