以下是失败的单元测试,解释了我今天发现的错误:

    [TestMethod]
    public void WFT()
    {
        string configDebug = "false";
        bool configDebugEnabled = bool.TryParse(configDebug, out configDebugEnabled);

        Assert.AreEqual(false, configDebugEnabled);
    }


这是使测试从红色变为绿色的方法:

    [TestMethod]
    public void WFT()
    {
        string configDebug = "false";
        bool configDebugEnabled;
        bool.TryParse(configDebug, out configDebugEnabled);

        Assert.AreEqual(true, configDebugEnabled);
    }


我在C#规范中找不到解释此内容的段落,但很可能对此行为有一个不错的解释。有人可以向我解释为什么第一次测试失败了吗?

最佳答案

因为TryParse方法总是在解析成功的情况下返回true,否则无法返回false。在第一种情况下,解析成功完成,因此configDebugEnabled = true并非您断言的那样。

除非您编写string configDebug = "true",否则第二项测试也将失败。

关于c# - out参数-为什么不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3132053/

10-08 22:42