2009-09-23 29 views
20

Jeśli chcę wyśmiać klasę, która zwraca ciąg, który jest używany do określenia, czy pętla while powinna być kontynuowana (wyobraź sobie, że czytasz podczas gdy łańcuch! = Null), w jaki sposób ustawić oczekiwanie . Próbowałem następujących czynności:Wiele połączeń z wyszydzaną metodą Rhino zwraca różne wyniki

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

ale kiedy to się nazywa dwa razy w ten sam sposób, to zwraca pierwszy ciąg w obu przypadkach, podczas gdy chcę wrócić drugą wartość (null) jeśli nazywa się po raz drugi .

Odpowiedz

28

Myślę, że możesz po prostu wcisnąć powtórzenie na końcu składni, z której aktualnie korzystasz.

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

lub

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

jeśli masz żadnych połączeń poza 2 połączenia, które chcesz użyć drugiego oczekiwania.

0

Nie znam składni, której używasz. Napisałbym to jako:

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

Aby upewnić się, że określasz, ile razy ma się powtarzać. (Nie musisz mieć Visual Studio do ręki, składnia może nie być dokładna.)

+0

To jest bieżąca składnia 3.5. –

Powiązane problemy