1

我正在尝试一个需要使用 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

谢谢!

4

1 回答 1

1

我修复了使用 .after() 而不是 .afterJSON()。

于 2015-06-19T21:25:54.343 回答