我正在構建node.js模塊,我也希望用Jasmine來測試它。用Jasmine攔截Event發送器
讓說我的模塊類似於此:
var myModule = function (foo, bar) {
// Begin a workflow
var workflow = new (require('events').EventEmitter)();
workflow.on('test', function() {
var greet = greet();
return greet;
});
workflow.emit('test');
};
function greet() {
return "Hi!";
}
module.exports = {
myModule: myModule
};
如何測試我的茉莉針對我的活動我發射模塊?
事情是這樣的:
var myModule = require('../myModule.js');
describe('My Module test', function() {
it('should get greet value', function() {
myModule.on('test', function() { // "test" as I wrote in myModule
expect(myModule.greet).toHaveBeenCalled();
});
});
});
嗨,謝謝你的回答,我可以問一個更詳細的例子嗎?我是新來的單元測試世界,它會更好地理解它更好... –
不知道這個例子是否完全有效,因爲我剛剛寫了它內聯。但你應該閱讀這個:http://jasmine.github.io/2.5/introduction還有關於proxyquire的文檔。 –
我會盡快測試它並讓你知道。謝謝 –