0

我想为异步函数返回的测试用例设置 2 个变量。在之前的尝试中,我使用了 runs() 和 waitsFor(),但我想使用 jasmine 2.0 的 done() 功能。我试过这样的事情:

describe("Test", function() {

    it("makes a log file", function(done) {
        make_valid_detailed(1, 2, '2014-02-20', 'test.txt', location, function(error, returnCode, path) {
            this.lpath = path;
            this.status_code = returnCode;
        });
        expect(this.lpath).toBeDefined();
        expect(this.status_code).toBeDefined();
        done();
    });

});

我希望以后的测试 it() 场景可以访问这些变量。我总是像现在这样“未定义”。最终,我将运行一些设置一些变量的异步函数,然后其余的测试测试这些变量是什么,文件等。

4

1 回答 1

0

您忽略了 javascript 基本范围规则,这会根据函数上下文而变化。此外,如果 make_valid_detailed 是异步的,则不会定义您的 2 个变量,因为 2 个期望函数将在它之前执行。

describe("Test", function() {

it("makes a log file", function(done) {
    make_valid_detailed(1, 2, '2014-02-20', 'test.txt', location, function(error, returnCode, path) {
       expect(path).toBeDefined();
       expect(returnCode).toBeDefined();
       done();
    });


});

});
于 2014-02-19T20:09:53.557 回答