rhino-mocks - una - videollamada grupal whatsapp iphone
Las llamadas múltiples a un método simulado de Rhino devuelven resultados diferentes (2)
Si quiero simular una clase que devuelve una cadena que se usa para determinar si el bucle while debería continuar (imagínese que se lee mientras que la cadena es nula), ¿cómo puedo establecer la expectativa? He probado lo siguiente:
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20");
provider.Reader.Expect(r => r.ReadLine()).Return(null);
pero cuando se llama dos veces en el mismo método, devuelve la primera cadena en ambas ocasiones, mientras que quiero que devuelva el segundo valor (nulo) si se llama una segunda vez.
Creo que puedes pegar la repetición al final de la sintaxis que estás usando actualmente.
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once();
provider.Reader.Expect(r => r.ReadLine()).Return(null).Repeat.Once();
o
provider.Reader.Expect(r => r.ReadLine()).Return("1,10,20").Repeat.Once();
provider.Reader.Expect(r => r.ReadLine()).Return(null);
Si tiene alguna llamada más allá de la segunda llamada, quiere usar la segunda expectativa.
No estoy familiarizado con la sintaxis que estás usando. Yo escribiría esto como:
r.ReadLine();
LastCall.Return("1,10,20").Repeat.Once();
r.ReadLine();
LastCall.Return(null).Repeat.Once();
Para asegurarse de que está especificando la cantidad de veces que se repetirán las cosas. (No tenga a mano Visual Studio, la sintaxis puede no ser exacta).