对于编写用于计算的单元测试有一个问题。是否有其他编写测试方法的测试方法。在我看来,编写这样的单元测试似乎没有用,因为我们只是复制逻辑来进行测试和比较
public int TestMethod(bool flag)
{
var result = default(int);
var someConstant = 1400;
if (flag)
{
result = (someConstant * 5) - 20;
}
else
{
result = someConstant - 50;
}
return result;
}
[Test]
public void TestMethod_ReturnsResult_WhenFlagIsTrue()
{
var someConstant = 1400;
var expctedResult = (someConstant * 5) - 20;
var actualResult = TestMethod(true);
Assert.IsTrue(expctedResult == actualResult);
}
答案 0 :(得分:0)
您不应复制算术操作来测试您的方法。这可能会引入错误。最好将其保存为常量。
如果不想测试算术逻辑,则将这些算术运算提取到外部,然后通过DI注入到内部。在测试内部,您只需要检查为给定标志调用了哪些方法。例如,您可以使用DATE ID TAGS
6/25/2019 101 Clothing:Grocery
6/25/2019 102 Clothing
6/25/2019 103 Clothing:Grocery:Hardware:Home_Decor:Electric:Plumbing
6/25/2019 104 Clothing:Grocery:Plumbing
框架轻松地做到这一点。
Moq
然后确定是否值得在这些方法中测试单个操作。