Вот мой код в одном из метода, который я хочу, чтобы тест:Как разорвать зависимость от метода readLine() StreamReader в модульном тестировании подсистемы microsoft?
using (var sr = new StreamReader(myFile))
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.Equals("completed"))
{
continue; //here it is getting called infinite times
}
if(line.Equals("processed"))
{
break;
}
}
}
В моем методе испытаний я написал ниже код с помощью регулировочной шайбы:
ShimStreamReader.ConstructorString = delegate (StreamReader @this, string @string)
{
var reader = new ShimStreamReader(@this);
reader.ReadLine =() =>
{
return "completed";
};
};
Теперь я не хочу для передачи файла. Вместо этого я хочу передать поток символов или строку. Вышеуказанный тестовый код вызывает и ломает зависимость нового StreamReader (myFile) как ожидалось и входит в цикл while. Как только он вводит его во время цикла, sr.ReadLine() возвращается «завершено» все время. Поэтому я застрял здесь. Как бы я остановился здесь или как написать строку ввода так, чтобы как только мой первый вызов был завершен во втором вызове sr.ReadLine(), он должен вернуть значение null, а затем разбить цикл?
Оцените свои усилия Doobop. Это был поздний ответ, хотя, спасибо большое DooBop. Это может помочь и кому-то. Я реализовал, создал код для создания одного файла с моими ожидаемыми входами и передал его читателю, и тогда я смог проверить свой метод. Передача входных файлов dint выполняется в бесконечный цикл. :) Приветствия Спасибо :) –