tôi đã kết thúc bắt đầu với câu trả lời @ kgilpin và kết thúc với một cái gì đó như thế này để kiểm tra Mysql trong một AWS Lambda:
const sinon = require('sinon');
const LambdaTester = require('lambda-tester');
const myLambdaHandler = require('../../lambdas/myLambda').handler;
const mockMysql = sinon.mock(require('mysql'));
const chai = require('chai');
const expect = chai.expect;
describe('Database Write Requests', function() {
beforeEach(() => {
mockMysql.expects('createConnection').returns({
connect:() => {
console.log('Succesfully connected');
},
query: (query, vars, callback) => {
callback(null, succesfulDbInsert);
},
end:() => {
console.log('Connection ended');
}
});
});
after(() => {
mockMysql.restore();
});
describe('A call to write to the Database with correct schema', function() {
it('results in a write success', function() {
return LambdaTester(myLambdaHandler)
.event(anObject)
.expectResult((result) => {
expect(result).to.equal(succesfulDbInsert);
});
});
});
describe('database errors', function() {
before(() => {
mockMysql.expects('createConnection').returns({
connect:() => {
console.log('Succesfully connected');
},
query: (query, vars, callback) => {
callback('Database error!', null);
},
end:() => {
console.log('Connection ended');
}
});
});
after(() => {
mockMysql.restore();
});
it('results in a callback error response', function() {
return LambdaTester(myLambdaHandler)
.event(anObject)
.expectError((err) => {
expect(err.message).to.equal('Something went wrong');
});
});
});
});
Tôi không muốn bất kỳ kết nối cơ sở dữ liệu thực tế nào do đó tôi đã tự tay chế nhạo tất cả các phản hồi mysql.
Bằng cách thêm một chức năng khác vào .returns
, bạn có thể giả lập bất kỳ phương thức nào là tắt của createConnection
.
Bạn có thể cho tôi biết thêm chi tiết không? Ví dụ dán một số mã và hiển thị có lẽ là mã giả của những gì bạn muốn đạt được? Tôi muốn giúp đỡ. – alessioalex
@alessioalex Tôi thành thật thậm chí không biết bắt đầu từ đâu. Thực sự lý tưởng tôi muốn xem lớp mô hình của người khác và các thử nghiệm/kiểm tra liên quan của họ. –