我正在尝试使用frisby进行身份验证令牌登录的测试,问题是:我的请求的响应是字符串而不是JSON,我仍然没有想出如何让它工作。
我已经阅读了一些我发现谷歌搜索的例子,但到目前为止他们还没有帮助。
这是我的代码:
var frisby= require('frisby');
frisby.create('Login')
.post('http://mid.dev.psafe.com/My.API/security/Authentication.svc/Login',
{"user":"115303640577606155760"},
{json:true},
{ headers: { 'Content-Type': 'application/json' }})
.expectStatus(200)
.afterJSON(function (token) {
frisby.globalSetup({
request: {
headers: { 'User-Token': token }
}
});
frisby.create('List associated devices')
.post('http://mid.dev.psafe.com/My.API/APIAdmin.svc/GetDevices',
{json:true})
.expectStatus(200)
.toss();
})
.toss();
以下是我在测试时得到的结果:
1) Frisby Test: Login
[ POST http://mid.dev.psafe.com/My.API/security/Authentication.svc/Login ]
Message:
Error: Error parsing JSON string: Unexpected token q
Given: qO1DkNvKlCaOmNXsrmvGgfIqeCQEztKJHnizItWyfKaXD9H1bwm1eTIgiINCw5Dz0
Stacktrace:
Error: Error parsing JSON string: Unexpected token q
Given: qO1DkNvKlCaOmNXsrmvGgfIqeCQEztKJHnizItWyfKaXD9H1bwm1eTIgiINCw5Dz0
at _jsonParse (/usr/lib/node_modules/frisby/lib/frisby.js:1219:11)
at Frisby.<anonymous> (/usr/lib/node_modules/frisby/lib/frisby.js:950:20)
at null.<anonymous> (/usr/lib/node_modules/frisby/lib/frisby.js:1112:18)
at Timer.listOnTimeout [as ontimeout] (timers.js:112:15)
Finished in 0.255 seconds
1 test, 2 assertions, 1 failure, 0 skipped
谢谢!
答案 0 :(得分:1)
我使用.after()代替.afterJSON()。