我使用下面的代码,在之前的复制文件中,之后的测试使用了断言,但是当我运行它时,之前/每个在测试之后发生,我在这里缺少什么?
我也尝试过beforeach而没有成功
describe(" Handler", function() {
before((done) => {
fs.stat(utils.pathSetup() + "/ins/", function (err, stats) {
if (!err) {
console.log("success");
} else {
let lclpath = utils.pathSetup();
Loder.add({folderPath: lclpath + "/test/testcontent/ins"});
console.log(err);
}
});
done();
});
//在上一个语句之前调用它为什么???????? //这应该在before完成之后发生,它们在同一个测试块中,并且这个被调用在...之后......
Handler.invoke(req, res)
.then((Ref) => {
}).done();
ee.on('Started', (arg) => {
evtResStart = arg;
});
在调试时,我把BP放在之前停止并单击步骤将我带到Handler.invoke而不是之前... :(
知道这样的事情可能是什么原因?
答案 0 :(得分:0)
如果您在测试/之前使用done
,则需要在回调中调用done()
,例如
before((done) => {
fs.stat(utils.pathSetup() + "/ins/", function (err, stats) {
if (!err) {
console.log("success");
} else {
let lclpath = utils.pathSetup();
Loder.add({folderPath: lclpath + "/test/testcontent/ins"});
console.log(err);
}
done();
});
});
编辑:假设您的问题中的评论应该被格式化为代码,那么Handler
内容是it
阻止了吗?
it('should do something', () => {
Handler.invoke(req, res)
.then((Ref) => {
}).done();
ee.on('Started', (arg) => {
evtResStart = arg;
});
});
答案 1 :(得分:0)
您是否尝试将done();
置于fs.stat的回调中?
通过这种方式,您的测试应该按照您的需要运行
before((done) => {
fs.stat(utils.pathSetup() + "/ins/", function (err, stats) {
if (!err) {
console.log("success");
} else {
let lclpath = utils.pathSetup();
Loder.add({folderPath: lclpath + "/test/testcontent/ins"});
console.log(err);
}
done();
});
});