3

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

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

1 回答 1

4

最简单的方法是使用/安装 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

于 2015-05-21T11:48:32.767 回答