javascript - 使用单个 frisby.js 测试文件创建多个 cookie

标签 javascript node.js cookies integration-testing

如何使用单个文件创建多个 cookie? 我所要做的就是将这两个文件合并为一个文件,以测试它的有效和无效 cookie。 我怎样才能做到这一点?

第一个文件:

有效的cookie valid_spec.js

 var frisby = require('./lib/frisby');
 // Global setup for all tests
 frisby.globalSetup({
 request: {
 headers:{'Accept': 'application/json,  application/x-httpd-php', 'Cookie': 'authenticationToken=5363; activationID=1'}
 },
  timeout: (30 * 1000)
});


/**
* Tests -> GET
*/
frisby.create(' ')
.get('http://xyz/auto?limit=0')
.expectStatus(200)
.expectHeaderContains('content-type', 'application/json')
.expectJSON('status',{
 message: "SUCCESS",
 code: 1
 })
.toss(); 

第二个文件:

无效的 cookie invalid_spec.js

var frisby = require('./lib/frisby');

// Global setup for all tests
 frisby.globalSetup({
 request: {
 headers:{'Accept': 'application/json,  application/x-httpd-php', 'Cookie': 'authenticationToken=5363; activationID=11123fgf'}
 },
 timeout: (30 * 1000)
 });


/**
* Tests -> GET
*/
frisby.create(' ')
.get('http://xyz/auto?limit=0')
.expectStatus(200)
.expectHeaderContains('content-type', 'application/json')
.expectJSON('status',{
message: "DATABASE_ERROR",
code: 2
 })
 .toss(); 

最佳答案

您需要从 after 回调中调用第二个测试。

像这样:

var frisby = require('./lib/frisby');

frisby.globalSetup({
    request: {
        headers: {
            'Accept': 'application/json,  application/x-httpd-php',
            'Cookie': 'authenticationToken=5363; activationID=1'
        }
    },
    timeout: (30 * 1000)
});


frisby.create(' ')
    .get('http://xyz/auto?limit=0')
    .expectStatus(200)
    .expectHeaderContains('content-type', 'application/json')
    .expectJSON('status', {
        message: "SUCCESS",
        code: 1
    })
    .after(function() {

        frisby.create(' ')
            .get('http://xyz/auto?limit=0')
            .expectStatus(200)
            .expectHeaderContains('content-type', 'application/json')
            .expectJSON('status', {
                message: "DATABASE_ERROR",
                code: 2
            })
            .toss();

    })
    .toss();

关于javascript - 使用单个 frisby.js 测试文件创建多个 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22558505/

相关文章:

javascript - Firestore 抛出 'onSnapshot() requires between 1 and 4 arguments'

javascript - 使用 jQuery 在 span 中添加一个 ✔ 刻度线

javascript - Node.js/express部署到不同环境

php - 将 cURL Cookie 复制给访问用户(使用 Javascript?)

php - 安全地维护 PHP 中的用户 session

javascript - 如何在 Owl Carousel 中放置箭头?

javascript - 从 SVG 代码附加 SVG 元素

javascript - Electron 中自定义 HTML 对话框的问题

mysql - Sequelize hasMany 工作正常,但反比关系不起作用

php - 在 php 中使用 curl 登录页面,然后访问链接 "logged in"