Подтвердить что ты не робот

Несколько обращений к методу Rhino издевательства возвращают разные результаты

Если я хочу издеваться над классом, который возвращает строку, которая используется для определения того, должен ли цикл while продолжать (представьте, что вы читаете в то время как string!= null), как я могу установить ожидаемое. Я пробовал следующее:

    provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20");
    provider.Reader.Expect(r => r.ReadLine()).Return(null);

но когда он вызывается дважды в том же методе, он возвращает первую строку в обоих случаях, тогда как я хочу, чтобы она возвращала второе значение (null), если вызывается второй раз.

4b9b3361

Ответ 1

Я думаю, вы можете просто придерживаться повтора в конце синтаксиса, который вы используете в настоящее время.

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);

если у вас есть какие-либо вызовы за пределами второго вызова, которые вы хотите использовать для второго ожидания.

Ответ 2

Я не знаком с синтаксисом, который вы используете. Я бы написал это как:

r.ReadLine();
LastCall.Return("1,10,20").Repeat.Once();
r.ReadLine();
LastCall.Return(null).Repeat.Once();

Чтобы убедиться, что вы указываете количество повторений повторяющихся действий. (Не нужно иметь Visual Studio, синтаксис может быть не точным.)