FitNesse:在失败的断言中,看不出预期和实际结果的区别。

问题描述 投票:3回答:4

我正在使用FitNesse来测试Web服务的响应,并使用 check 来比较预期和实际的响应。

在某些情况下,检查是失败的,我看不到预期和实际之间的差异是什么导致它失败。

这里是它在一个特定的例子中告诉我的截图(许多类似的例子中)。Here's an example where it's failing and I can't see why

欢迎指出显而易见的问题;它可能正盯着我的脸看,而我看得太仔细了,我看不到它!我正在使用FitNesse。

fitnesse
4个回答
1
投票

我会检查预期的和实际的字符串是否都是用相同的文本编码写的。我见过很多次这种错误,当文本比较失败时,由于逗号或撇号是用不同的编码书写的。


0
投票

有可能是你的字符串在实际值中含有额外的空格。 FitNesse是基于html的,它不尊重前导和尾部的空格。 它可能也不会处理实际值中的任何额外空格。 所以这可能会导致结果不同,但不明显。

看看你是否可以添加一些调试信息,帮助你看到额外的空格,或者至少计算两个字符串中的字符数。


0
投票

这个问题没有说明是使用Slim还是Fit,如果使用Slim的话,也没有说明是哪个Slim serverplugin,但是我发现使用FitNesse发布的时候,以下情况是正确的。20130530 和 fitSharp 释放 2.2:

  1. 输入参数中的非ASCII字符和{单引号字符}是字符串的参数是HTML编码的。我的FitNesse测试表中的值是HTML编码的,但只有必要的语法字符和(双)引号,而不是非ASCII字符(而且FitNesse似乎没有任何存储这些值的问题)。
  2. 输入参数中的EOL字符是字符串,只包括一个换行字符。
  3. 我想,因为我使用的是.NET,所以我的返回值中的EOL由回车和换行字符组成。

因为[1],我正在对非ASCII字符进行HTML编码(但不是HTML语法字符或引号)。因为[2]和[3],我现在从我的夹具返回值中删除了回车字符。这两个改变似乎解决了我的这个问题,现在预期值和实际值的报告是一样的。


0
投票

空白空间经常困扰着我。产生的HTML只是折叠了whitespace,但代码中的比较却没有。我现在使用了一个固定装置来让我更清楚地看到差异。例子用法。http:/fhoeben.github.iohsac-fitnesse-fixturesexamplesresultsHsacExamples.SlimTests.UtilityFixtures.CompareFixtureTest.html。

FitNesse的新版本(自20151230起)对预期和实际结果值做了一个差异。这对你有什么帮助吗?

© www.soinside.com 2019 - 2024. All rights reserved.