以下是失败的单元测试,解释了我今天发现的错误:
[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/