如果我想模拟一个返回一个字符串的类,该字符串用于确定while循环是否应该继续(想象读取字符串!= null),我该如何设置期望值。我尝试过以下方法:
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20");
provider.Reader.Expect(r => r.ReadLine()).Return(null);
但是当它在同一个方法中被调用两次时,它会在两种情况下返回第一个字符串,而我希望它在第二次调用时返回第二个值(null)。
答案 0 :(得分:31)
我认为你可以在你目前正在使用的语法结束时坚持重复。
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once();
provider.Reader.Expect(r => r.ReadLine()).Return(null).Repeat.Once();
或
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once();
provider.Reader.Expect(r => r.ReadLine()).Return(null);
如果你有超过第二次电话的任何电话,你想要使用第二次期望。
答案 1 :(得分:0)
我不熟悉您正在使用的语法。我会把它写成:
r.ReadLine();
LastCall.Return("1,10,20").Repeat.Once();
r.ReadLine();
LastCall.Return(null).Repeat.Once();
确保您指定重复内容的次数。 (不要使用Visual Studio,语法可能不准确。)