Несоответствие количества параметров при попытке выполнить вход в систему - PullRequest
0 голосов
/ 10 мая 2018

У меня проблема с параметрами, я полагаю, чтобы проверить Application Login, если он установлен в true, затем выполнить метод LoginFirst, но каждый раз, когда я пытаюсь выполнить тест, я получаю эту ошибку:

Message: Test method AppNameWebMultiMap.Bader.DeleteDomain.DeleteDomainTest threw exception: 
System.Reflection.TargetParameterCountException: Parameter count mismatch.

Вот метод:

[TestMethod]
private void LoginFirst()
{
    var login = new AppLogin();
    login.AppLoginBySaTest();
}

Вот как я ее выполняю:

[TestMethod]
    public void DeleteDomainTest(bool loginFirst = true)
    {
        //Login 
        if (loginFirst)
        {
            LoginFirst();
        }
    //Execute delete domains function

    }

Метод DeleteDomainTest выполняет следующие действия: Первый вход затем попытайтесь удалить домены.

1 Ответ

0 голосов
/ 10 мая 2018

Из комментариев проблема заключается в том, что метод:

[TestMethod]
public void DeleteDomainTest(bool loginFirst = true) {...}

помечен как метод тестирования (через атрибут) и имеет параметр, причина которого в том, что ониспользуется из "других методов в приложении".Среда тестирования требует, чтобы метод тестирования был без параметров.

Это предполагает фундаментальное неправильное применение методов тестирования.Если метод используется другим кодом, то это не тестовый метод .Методы тестирования всегда должны быть автономными и на высшем уровне.Вы должны быть в состоянии решить эту проблему, просто слегка изменив рефакторинг:

[TestMethod]
public void DeleteDomainTest() { DeleteDomainImpl(); }

internal void DeleteDomainImpl(bool loginFirst = true) {...}

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

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