У меня есть такой метод:
public string MyMethod(string a, string b)
{
if(a == "abcd" && b == "xyz")
return "good";
if(a == "xyz" && b == "something")
return "even better";
return "unexpected";
}
public string MainMethod()
{
string s1, s2;
if(some condition)
{
s1= "abcd";
s2 = "xyz";
}
return service.MyMethod(s1, s2);
}
Мой фиктивный объект создан вот так
AppObj obj = new AppObj();
Mockery mocks = new Mockery();
mockMyService = mocks.NewMock<IMyService>();
Expect.Once.On(mockMyService ).Method("MyMethod").
With("abcd", "xyz").
Will(Return.Value("good"));
obj.MainMethod();
Expect.Once.On(mockMyService ).Method("MyMethod").
With("xyz", "something").
Will(Return.Value("even better"));
obj.MainMethod();
Проблема с приведенным выше кодом заключается в том, что он всегда принимает параметры первого метода-макета и возвращает «хорошо». Что мне нужно сделать, чтобы NMock возвращал разные значения для одного и того же метода с разными значениями аргументов? Пожалуйста, помогите !!