如何在Jasmine测试中强制执行函数?

时间:2016-05-24 19:20:44

标签: javascript node.js jasmine

我在Node中有一条获取授权密钥的路由。我想在我的所有茉莉花测试中使用此auth密钥作为URL请求中的参数。我想要运行SetUp函数,设置一个全局变量,然后允许我在所有其他测试用例中使用这个变量。

SetUp功能

    var global_key = request({
      uri               : 'http://localhost:3000/grabToken',
      method            : 'GET'
    },
    function (err, body, res) {
      if (err) { console.log(err);}
      else {
        return body['auth_key'];
      }
    });

测试套件

function testCases() {
  describe(TEST_SUITE, function() {
    describe("GET /retrieveSecret/VALID_UUID", function() {
      it('Requests the secret - Successful response', function(done) {
        // ...
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

您可以使用asynchronous函数的beforeAll版本:

describe(TEST_SUITE, function() {
    let key;

    beforeAll(function (done) {
        const params = { uri: 'http://localhost:3000/grabToken', method: 'GET' };

        request(params, function (err, body, res) {
            if (err) {
                console.log(err);
                done.fail();
            } else {
                key = body['auth_key'];
                done();
            }
        });
    })

    describe("GET /retrieveSecret/VALID_UUID", function() {
        it('Requests the secret - Successful response', function(done) {
            // `key` is available here
        }
    });
})