मैं @ kgilpin के जवाब के साथ शुरू समाप्त हो गया और कुछ इस तरह एक एडब्ल्यूएस लैम्ब्डा में Mysql का परीक्षण करने के साथ समाप्त हो गया:
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');
});
});
});
});
मुझे कोई वास्तविक डेटाबेस कनेक्शन नहीं चाहिए इसलिए मैंने मैन्युअल रूप से सभी mysql प्रतिक्रियाओं का मज़ाक उड़ाया।
.returns
पर एक और फ़ंक्शन जोड़ा गया है, तो आप createConnection
से किसी भी विधि का नकल कर सकते हैं।
क्या आप मुझे और विवरण दे सकते हैं? उदाहरण के लिए कुछ कोड पेस्ट करें और शायद आप जो प्राप्त करना चाहते हैं उसका एक स्यूडोकोड दिखाएं? मैं मदद करना चाहूंगा। – alessioalex
@alessioalex मैं ईमानदारी से वास्तव में यह भी नहीं जानता कि कहां से शुरू करना है। वास्तव में आदर्श रूप में मैं किसी और के मॉडल वर्ग और उनके संबंधित मैक्स/परीक्षण देखना चाहता हूं। –