2015-05-08 5 views
0

Я пытаюсь преобразовать приведенный ниже pex testmethod в обычный модульный тест. Хотя я планирую использовать Microsoft Fakes там, где это необходимо, я хочу сначала понять несколько вещей.Преобразование Pex TestMethods VS 2010 в VS2013 с Microsoft Fakes

[TestMethod] 
[PexGeneratedBy(typeof(ErrorLogTest))] 
public void Initialize139() 
{ 
    ErrorLog errorLog; 
    NameValueCollection nameValueCollection; 
    errorLog = new ErrorLog(); 
    errorLog.MyProperty = false; 
    KeyValuePair<string, string>[] keyValuePairs = new KeyValuePair<string, string>[5]; 
    KeyValuePair<string, string> s0 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[0] = s0; 
    KeyValuePair<string, string> s1 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[1] = s1; 
    KeyValuePair<string, string> s2 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[2] = s2; 
    KeyValuePair<string, string> s3 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[3] = s3; 
    KeyValuePair<string, string> s4 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[4] = s4; 
    nameValueCollection = PexFactories.CreateNameValueCollection(keyValuePairs); 
    this.Initialize(errorLog, "", nameValueCollection); 
    Assert.IsNotNull((object)errorLog); 
    Assert.AreEqual<bool>(false, errorLog.MyProperty); 
} 

И я преобразовал, что в простой блок тестирования, как показано ниже:

[TestMethod] 
public void Initialize1390() 
{ 
    ErrorLog errorLog; 
    NameValueCollection nameValueCollection = new NameValueCollection(); 
    errorLog = new ErrorLog(); 
    errorLog.MyProperty = false; 
    KeyValuePair<string, string>[] keyValuePairs = new KeyValuePair<string, string>[5]; 
    KeyValuePair<string, string> s0 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[0] = s0; 
    KeyValuePair<string, string> s1 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[1] = s1; 
    KeyValuePair<string, string> s2 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[2] = s2; 
    KeyValuePair<string, string> s3 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[3] = s3; 
    KeyValuePair<string, string> s4 = new KeyValuePair<string, string>("", ""); 
    keyValuePairs[4] = s4;     
    errorLog.Initialize("", nameValueCollection); 
    Assert.IsNotNull((object)errorLog); 
    Assert.AreEqual<bool>(false, errorLog.MyProperty); 
} 

У меня есть два вопроса:

  • ли я потерять какие-либо сценарии, в этом переходе от pexmethod к Метод испытания ?
  • Я вижу счет в имениValueCollection. Возвращаемое значение счета равно 1. Это потому, что все KeyValuePair, которые я вставляю, одинаковы?

ответ

1

Ваш новый тест, похоже, отсутствует, когда вы копируете содержимое массива keyValuePairs в коллекцию nameValueCollection. Я считаю, что это было сделано в оригинальном тесте по этой строке:

nameValueCollection = PexFactories.CreateNameValueCollection(keyValuePairs); 
+0

Я забыл добавить этот шаг в этом сообщении. есть ли другие комментарии кроме этого? – krrishna

+0

Если вы сделали это исправление, я не вижу никаких сценариев, которые будут рассмотрены в первом тесте, которые не рассматриваются во втором. Я делаю одно предположение, что эта строка: 'this.Initialize (errorLog," ", nameValueCollection);' функционально эквивалентна этой строке: 'errorLog.Initialize (" ", nameValueCollection);' –

+0

Да, это преобразованный. – krrishna

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

  • Нет связанных вопросов^_^