我绝对不知道(写入验收测试)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 | |
如果可能的话,我不想为此编写任何代码。
答案 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|
不确定这是一个有用的装置,看起来它只是一个演示样本。