如何在C#中测试算术运算

时间:2019-06-25 18:42:06

标签: c# unit-testing

对于编写用于计算的单元测试有一个问题。是否有其他编写测试方法的测试方法。在我看来,编写这样的单元测试似乎没有用,因为我们只是复制逻辑来进行测试和比较

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

1 个答案:

答案 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

然后确定是否值得在这些方法中测试单个操作。