Я пытаюсь преобразовать приведенный ниже 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, которые я вставляю, одинаковы?
Я забыл добавить этот шаг в этом сообщении. есть ли другие комментарии кроме этого? – krrishna
Если вы сделали это исправление, я не вижу никаких сценариев, которые будут рассмотрены в первом тесте, которые не рассматриваются во втором. Я делаю одно предположение, что эта строка: 'this.Initialize (errorLog," ", nameValueCollection);' функционально эквивалентна этой строке: 'errorLog.Initialize (" ", nameValueCollection);' –
Да, это преобразованный. – krrishna