我在NodeJS中使用Mocha / Chai框架来编写测试。他们应该独立执行。现在要求是在条件下执行它们。例如,在删除员工之前,请确保在数据库中创建员工。 '创造'& “删除”是两个不同的API,虽然它们将单独执行,但在“删除”的情况下,我必须先调用“创建”API从其响应中获取employeeId,然后对同一employeeId执行“删除”。编写嵌套测试的最佳方法是什么?这就是我单独编写测试的方式:
var _customHeaders = {
"authToken": "AVeryLargeStringWithActualToken"
};
describe('POST /Employee/Create', function() {
it('should create a new employee in database.', function(done) {
request
.get('/Employee/Create/')
.set(_customHeaders)
.send({ "firstName": "ABC", "lastName": "XYZ", "departmentId": 123 })
.expect(200)
.expect('Content-Type', 'application/json')
.end(function(err, res) {
expect(res.body.success).to.equal(true);
expect(res.body.message).to.equal('Employee Created!');
done();
});
});
});
describe('POST /Employee/Delete', function() {
it('should delete an employee from database.', function(done) {
request
.get('/Employee/Delete/')
.set(_customHeaders)
.send({ "employeeId": 123 })
.expect(200)
.expect('Content-Type', 'application/json')
.end(function(err, res) {
expect(res.body.success).to.equal(true);
expect(res.body.message).to.equal('Employee Deleted!');
done();
});
});
});
我如何编写'删除'以便首先创建一个员工,然后如果'创建'成功则继续删除?
答案 0 :(得分:0)
如果您在删除测试之前需要设置,首先创建必要的Employee,那么这可能应该在之前的每个'在您的describe块中挂钩以进行删除测试。这应该与实际测试Employee创建的测试完全分开(尽管可以将公共代码分解为辅助函数)。您甚至可能希望使用此设置代码将employee目录放入数据库,而不是像实际测试此操作的函数一样通过REST API。