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谢谢你,我会随时通知你的。。。应该是这样吗?这不重要。。。但是我不知道。