我有一个具有如下规范的网络应用程序:
describe('Hook them up', () => {
var server;
beforeEach(done => {
server = app.listen(done);
});
before(done => {
// Does this run before or after "beforeEach"
// If I try to access the api at this point I get an ECONNREFUSED
});
after(done => {
server.close(done);
});
it('should set the \'createdAt\' property for \'DndUsers\' objects', done => {
api.post('/api/tweets')
.send({ text: 'Hello World' })
.then(done)
.catch(err => {
console.log(err);
done();
});
});
});
在我的其他一些项目中,如果我尝试访问 before
block 中的 api,它工作正常,就好像 beforeEach
已经运行一样。
最佳答案
See my answer here一个非常相似的问题。
Mocha 的测试运行器在 Hooks section of the Mocha Test Runner 中对这个功能进行了最好的解释。 .
来自 Hooks 部分:
describe('hooks', function() {
before(function() {
// runs before all tests in this block
});
after(function() {
// runs after all tests in this block
});
beforeEach(function() {
// runs before each test in this block
});
afterEach(function() {
// runs after each test in this block
});
// test cases
it(...); // Test 1
it(...); // Test 2
});
您可以将这些例程嵌套在其他描述 block 中,这些 block 也可以有 before/beforeEach 例程。
这应该给你
hooks
before
beforeEach
Test 1
afterEach
beforeEach
Test 2
afterEach
after
关于node.js - Mocha - 哪个先运行,beforeEach 还是 before?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755836/