FitNesse中的StringFixture

时间:2015-06-18 10:41:29

标签: json string fitnesse fitnesse-slim

我绝对不知道(写入验收测试)FitNesse 有人可以举例说明如何在FitNesse中使用https://github.com/unclebob/fitnesse/blob/master/src/fitnesse/fixtures/StringFixture.java吗?

这不起作用 |fitnesse.fixtures.StringFixture| |value|expected|contains?| |hello|lo|true|

为了提供背景信息,我试图验证' Id' REST调用输出的字段: |Table:smartrics.rest.fitnesse.fixture.RestFixture | http://localhost| | GET | /data/1234 | | | | | let | body | js | JSON.parse(response.body) | | | let | id | js | JSON.parse(response.body).Data[0].Id | |

如果可能的话,我不想为此编写任何代码。

2 个答案:

答案 0 :(得分:2)

我不知道您所提到的灯具,但您可以使用我的灯具(https://github.com/fhoeben/hsac-fitnesse-fixtures)来完成您的描述。

对于字符串:nl.hsac.fitnesse.fixture.slim.StringFixture

var wordsToCheck = new[] { "tree", "water", "sky", "lake" };
if (wordsToCheck.Any(wordToCheck => word.Contains(wordToCheck)))
{

}

对于JSON(使用JsonPath):nl.hsac.fitnesse.fixture.slim.JsonHttpTest

|script|string fixture                                                                                    |
|check |value of             |Hello                      |Hello                                           |
|check |length of            |Hello                      |5                                               |
|ensure|text                 |Hello world!               |contains    |world                              |
|reject|text                 |Hello world!               |contains    |moon                               |
|ensure|value                |Hello                      |differs from|Hell                               |
|ensure|value                |Hello                      |equals      |Hello                              |
|check |convert to upper case|Bye                        |BYE                                             |
|check |convert to lower case|Bye                        |bye                                             |
|check |normalize whitespace |!-   Hello    World    -!  |Hello World                                     |
|check |replace all          |Hello ([A-Za-z]+)          |in          |Hello World|with|$1      |World    |
|check |replace all          |(\d{4})-(\d{1,2})-(\d{1,2})|in          |1975-12-3  |with|$3-$2-$1|3-12-1975|

所以你的REST检查会是这样的:

|script  |json http test                            |
|get from|http://echo.jsontest.com/key/value/one/two|
|show    |response                                  |
|check   |json path       |$.key       |value       |
|check   |json path       |$.one       |two         |

答案 1 :(得分:1)

看起来contains()返回expect,而不是true / false。所以测试将是:

|fitnesse.fixtures.StringFixture|
|value|expected|contains?|
|hello|lo|lo|

不确定这是一个有用的装置,看起来它只是一个演示样本。