2015-09-24 2 views
1

У меня есть метод, который принимает роли пользователей ldap и оценивает каждую из его/ее ролей в списке, который называется ValidRoles, в файле web.config веб-сайтов. Мы предположим, что роли пользователей будут оставаться одинаковыми для разных пользователей для целей этого теста.Сценарий тестирования устройства

Теперь я хотел бы обмануть метод в следующем списке (а не в моем web.config) для сравнения с тем, когда я запускаю свой модульный тест. Как это сделать? Я новичок в модульном тестировании. Я ценю любые предложения. Метод, который я тестирую, ValidRoles из web.config и существующий модульный тест, который у меня есть, показаны ниже.

private bool IsValidClaimStationRoles() 
    { 
     foreach (string role in RoleList) 
     { 
      if (role != null) 
      { 
       if (ValidRoleList.Contains(role.ToUpper())) 
       { 
        return true; 
       } 
      } 
     } 
     return false; 

// Допустимые роли из web.config

<add key="ValidRoles" value="C-2,CP-1,CM-1,CIS-1,CID-1"/> 

// Unit тест

 [TestMethod()] 
    [DeploymentItem("ClaimsDocMgmtLinkWeb.dll")] 
    public void IsValidClaimStationRolesTest_Negative() 
    { 

     AuthenticateUser_Accessor target = new AuthenticateUser_Accessor(); // TODO: Initialize to an appropriate value 
     target.CreateTicket(); 
     bool expected = false; 
     bool actual; 



     actual = target.IsValidClaimStationRoles(); 
     Assert.AreEqual(expected, actual); 

    } 
+1

Посмотрите на насмешку (MOQ) или поддельные (подделки). Это позволяет вам подделывать определенные объекты, методы, необходимые для тестирования ваших методов. – Marko

+1

- это тесты в другом проекте? обычно тестовый проект может иметь свой собственный файл конфигурации – tim

+0

Да. На самом деле тесты находятся в другом .NET-решении. – Jazzcatone

ответ

1

Ваш аппарат тестовый сценарий здесь не получится, так как в основном RoleList не будет присутствовать. Фактический метод проверяет список ролей, который присутствует в коллекции RoleList.

Вы должны реорганизовать свою функцию и принять ее в качестве параметра RoleList, а затем вы можете передать поддельные роли и протестировать свой метод. что я точно говорю об этом Dependency Injection здесь.

private bool IsValidClaimStationRoles(RoleList roles) 
    { 
     // do processing code 
    } 
+0

Привет, Рауль. Спасибо за ответ. К сожалению, я не хочу касаться кода в методе, который я тестирую, если мне это не нужно. – Jazzcatone

Смежные вопросы