我正在自学moq
测试,并且想知道在这种情况下我做错了什么。
我不确定要在返回类型中包含什么。我知道通过在其中包含一个值,例如 4,那么这将忽略MulitplyValues(2,2)
调用内部的参数并设置response.basepremium
为 4。
我想测试该MultiplyValues
方法是否有效并根据参数值通过测试。我做错了什么?任何帮助,将不胜感激
我现在已将我的测试更改为符合回复的以下内容。这个对吗?
[Test]
public void MoqTestFindTax()
{
Mock<IPremiumResponse> premiumresponse = new Mock<IPremiumResponse>();
CalculateTax calcualtetax = new CalculateTax(premiumresponse.Object);
decimal i = 0.648m;
decimal totalsofar = 12.96m;
decimal tax = 0.05m;
premiumresponse
.Setup(x => x.MulitplyValues(It.IsAny<decimal>(), It.IsAny<decimal>())).Returns(i);
Assert.AreEqual(13.61, calcualtetax.FindTaxTotal(totalsofar, tax));
}
然后我创建了一个税收计算器类
public class CalculateTax
{
IPremiumResponse _response;
public CalculateTax(IPremiumResponse premiumresponse)
{
_response = premiumresponse;
}
public decimal FindTaxTotal(decimal val1, decimal val2)
{
return _response.MulitplyValues(val1,val2) + val1;
}
}
}