执行单元测试我在模拟方法时出错了。我试图返回不同的结果,具体取决于要输入的参数,否则返回默认答案。问题是我总是收到默认答案。
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.WithAnyArguments().WillReturn(-1);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("",false,null))
.With("BAG1", true, FamilyFaresType.Optima).WillReturn(0);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.With("BAG2", true, FamilyFaresType.Optima).WillReturn(87);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.With("BAG3", true, FamilyFaresType.Optima).WillReturn(139);
答案 0 :(得分:1)
错误在于行的顺序。该行返回默认值" WithAnyArguments"必须在带有参数的定义之后"使用"。
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("",false,null))
.With("BAG1", true, FamilyFaresType.Optima).WillReturn(0);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.With("BAG2", true, FamilyFaresType.Optima).WillReturn(87);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.With("BAG3", true, FamilyFaresType.Optima).WillReturn(139);
_commonFunctionsMock.Expects.AtLeastOne.Method(x => x.GetFeePrice("", false, null))
.WithAnyArguments().WillReturn(-1);