小编Alt*_*Ego的帖子

NMock - 如何使具有相同参数类型的方法返回不同的值?

我有一个像这样的方法:

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

   }
Run Code Online (Sandbox Code Playgroud)

我的模拟对象是这样创建的

   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();
Run Code Online (Sandbox Code Playgroud)

上面代码的问题是,它总是需要第一个模拟方法的参数并返回"good".我需要做些什么才能使NMock为具有不同参数值的相同方法返回不同的值?请帮忙!!

c# mocking return-value nmock

2
推荐指数
1
解决办法
1300
查看次数

标签 统计

c# ×1

mocking ×1

nmock ×1

return-value ×1