0
這裏是我的方法的一個代碼,我想測試:如何打破依賴StreamReader的readLine()方法的微軟假貨單元測試?
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循環中進入。 只要它在while循環中輸入,sr.ReadLine()就會一直返回「completed」。所以我被困在這裏。我將如何在這裏停下來,或者如何編寫輸入字符串,以便在第二次調用sr.ReadLine()時完成第一次調用返回時,它應該返回null,然後中斷循環?
欣賞你的努力Doobop。這是一個遲到的答覆,但非常感謝DooBop。它也可以幫助某人。我實現的是,創建代碼,用我的預期輸入創建一個文件,並將其傳遞給讀者,然後我就可以測試我的方法。通過文件輸入dint運行到無限循環。 :)乾杯謝謝:) –