我刚刚开始研究一个包含大量现有代码的新项目,测试没有通过。我更像是一个Nunit家伙,所以我不会立即熟悉Xunit的失败点。
问题在于代码看起来像这样:
fooStringProperty = readSomeFile;
//later
fooStringProperty.ShouldBe(expectedContents)
上面的代码失败,出现如下错误:
error : Position: First difference is at position 0
Expected: contentsOfFooStringProperty
Actual:
contentsOfFooStringProperty
基本上,它在某种程度上得到了这个换行符,我不知道如何。我在代码库中有很多这些失败,并且它适用于其他人,所以我想知道它是否是一些xunit版本问题?
编辑:这完全是mac和windows之间的CRLF问题。问题解决了:))
答案 0 :(得分:0)
xUnit似乎不太可能注入换行符。由于其他一些原因,你似乎更有可能 拥有流氓新行。
我建议你通过调试代码并检查调试器中的值来诊断它。在断言行上设置断点,看看它是否正确。假设它真的 在那时被打破,请在你获取/读取/计算每个值的位置放置一个断点。基本上应用正常步骤来解决意外行为 - 忽略xUnit方面。