如何使用frisby从rest调用验证xml响应

时间:2015-03-30 07:00:09

标签: rest frisby.js

需要使用frisby验证以下xml响应

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<server-auth enabled="true">
    <ldapAuth>false</ldapAuth>
    <emailAuth>true</emailAuth>
</server-auth>

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用/ install xml2js

在全局模式下(即,在命令后附加-g或--global),它将当前包上下文(即当前工作目录)安装为全局包。

npm install -g xml2js

    var frisby = require('frisby');
    var xml2js = require('xml2js');
    var apiEndpoint = 'http://localhost:3000/api/v1/';

    frisby.create('Parse xml')
    .get(apiEndpoint+'api.php?method=get_xml')
    .expectHeaderContains('content-type', 'text/xml')
    .after(function (err, res, body) {
        var parser = new xml2js.Parser();
        parser.parseString(body, function (err, result) {
            expect(result).toContainJson({
                "server-auth": {
                    "$": {
                        "enabled":"true"
                    },
                    "ldapAuth":["false"],
                    "emailAuth":["true"]
                }
            });
        });
    })  
    .toss();

输出

Finished in 0.041 seconds
1 test, 4 assertions, 0 failures, 0 skipped

要了解有关不同用法的更多信息,请查看:

https://github.com/Leonidas-from-XIV/node-xml2js