J'ai une méthode comme ceci:NMock - Comment faire qu'une méthode avec les mêmes types d'arguments renvoie des valeurs différentes?
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);
}
Mon objet fantaisie est créé comme celui-ci
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();
Le problème avec le code ci-dessus est, il faut toujours les paramètres et les rendements de la première méthode simulée " bien". Que dois-je faire pour que NMock renvoie des valeurs différentes pour une même méthode avec des valeurs d'arguments différentes? S'il vous plaît aider !!