我正在使用Mocha,Chai和Mongoose为我的Node.js应用编写单元测试。如果集合是空的(根据需要),测试本身也可以工作,但是在测试之前我无法清除集合。
let mongoose = require("mongoose");
let Subject = require('../Subject/subject');
//Require the dev-dependencies
let chai = require('chai');
let chaiHttp = require('chai-http');
// let server = require('../server');
let server = "http://localhost:3000"
let should = chai.should();
chai.use(chaiHttp);
describe('subjects', () => {
before((done) => { //Before each test, empty the database
Subject.remove({})
done();
});
describe('/GET subject', () => {
// working test
});
describe('/POST subject', () => {
// working test
});
describe('/GET subject', () => {
// working test
});
});
我也尝试了
的变体Subject.deleteMany({}, (err) => console.log(err));
和
Subject.find({}, (subject)=>{
subject.remove({}).exec()
})
在前面的区块内无济于事。为了以防万一,我也尝试过删除前块之外的删除。如果我console.log(Subject.remove({}))
我得到了Subject对象,那么它就可以访问它,只是实际上没有做任何永久性的对象。
我现在已经在这几个小时了,并且还没有更接近找出它,所以所有的帮助都表示赞赏。
答案 0 :(得分:2)
尝试等待删除调用的回调,如此
before((done) => { //Before each test, empty the database
Subject.remove({}, done);
});
答案 1 :(得分:0)
由于Mocha和Mognoose都支持异步块的承诺,因此可以无缝使用它们,而不是直接调用{
"id": "10",
"selected": true,
"other": "set"
}
。在这种情况下,应该返回一个承诺:
#!/usr/bin/env python3
import math
import numpy as np
import seaborn as sn
from matplotlib.colors import LogNorm
data = np.random.rand(20, 20)
log_norm = LogNorm(vmin=data.min().min(), vmax=data.max().max())
cbar_ticks = [math.pow(10, i) for i in range(math.floor(math.log10(data.min().min())), 1+math.ceil(math.log10(data.max().max())))]
sn.heatmap(
data,
norm=log_norm,
cbar_kws={"ticks": cbar_ticks}
)