Node.js NodeJS Mocha测试-在hook之前访问全局变量

Node.js NodeJS Mocha测试-在hook之前访问全局变量,node.js,scope,global-variables,mocha.js,hook,Node.js,Scope,Global Variables,Mocha.js,Hook,我有一个基本测试类,我在其中定义了应该在所有测试文件中使用的全局数据。在相应的测试文件中,我导入了所需的数据集 在我的测试套件中,我有before()和after()挂钩。在before()函数中,我想用我在文件顶部导入的数据创建一个新对象。但是,回调钩子函数中未定义数据 我感到困惑的是,我可以访问测试用例中的数据,尽管: import { app, token, storeData, cartData } from "./BaseTest.test"; describe("Test Cart

我有一个基本测试类,我在其中定义了应该在所有测试文件中使用的全局数据。在相应的测试文件中,我导入了所需的数据集

在我的测试套件中,我有
before()
after()
挂钩。在before()函数中,我想用我在文件顶部导入的数据创建一个新对象。但是,回调钩子函数中未定义数据

我感到困惑的是,我可以访问测试用例中的数据,尽管:

import { app, token, storeData, cartData } from "./BaseTest.test";

describe("Test Cart Controller", () => {

    before(function(done) {
        // create test store for carts to be associated with
        new Store(storeData).save().then((store: any) => {           // UNDEFINED HERE
            cartData.store = store._id;
            done();
        });
    });


    describe("tests creation of carts", () => {
       it("creating with POST to /carts should yield 201", (done) => {
        chai.request(app)                                           // VALID HERE THOUGH
            .post("/api/carts")
            .send(cartData)
            .set({"Authorization": "Bearer " + token })
            .end(function (err: Error, res: Response) {
                expect(res).to.have.status(201);
                done();
            }
       });
    });
});

有人能帮忙吗?

嗯。。。您在上面评论的两行使用了不同的导入变量。您能否确认您可以在测试本身中访问
storeData
?(现在您正在访问
app
)是的,当在第二条注释处设置断点时,我导入的所有全局变量都已定义,而在第一条注释所在的行中,它们并未定义。嗯。。。我真的不明白为什么会这样。有兴趣听听你是否找到了答案。祝你好运@jakerella谢谢你,我会随时通知你的。。。应该是这样吗?这不重要。。。但是我不知道。