2012-07-03 68 views
0

在我的一些单元测试中,我试图返回使用Moq作为参数传递的字符串。从Moq返回一个计算值,其中多个值传入

如果我要求它返回指定的字符串,如“home.aspx”,它将起作用。

var navMock = new Mock<INavigationService>(); 
navMock 
    .Setup(x => x.GetUrlForSystem(It.IsAny<NavigationService.System>(), It.IsAny<string>())) 
    .Returns("home.aspx"); 

但是要求它何时返回参数我收到

System.Reflection.TargetParameterCountException:参数计数 不匹配。

var navMock = new Mock<INavigationService>(); 
navMock 
    .Setup(x => x.GetUrlForSystem(It.IsAny<NavigationService.System>(), It.IsAny<string>())) 
    .Returns((string s) => s); 

回答

3
var navMock = new Mock<INavigationService>(); 
    navMock 
    .Setup(x => x.GetUrlForSystem(It.IsAny<NavigationService.System>(), It.IsAny<string>())) 
    .Returns((NavigationService.System n, string s) => s);