0.0.5 • Published 9 years ago

freemock v0.0.5

Weekly downloads
6
License
MIT
Repository
github
Last release
9 years ago

freemock Easy Mock for Node.js , Mocha Compatibility , istanbul Compatibility

Install

npm install freemock

Example

var freemock = require('freemock');
freemock.start()
var mockObj = freemock.getMock(mod);
mockObj.setMethod({
    "method1":{
        willReturn:1,//假象方法将返回的值
        willCallback:function(){},//假象方法将执行的回调
        expectArgs:[1,2],//假象方法预期的参数
        willThrow:new Error(),//假象方法会返回的异常
        runTime:1//假象方法会被执行的次数
    },
    "method2":{
        willReturn:1,//假象方法将返回的值
        willCallback:function(){},//假象方法将执行的回调
        expectArgs:[1,2],//假象方法预期的参数
        willThrow:new Error(),//假象方法会返回的异常
        runTime:1//假象方法会被执行的次数
    },
    ...
})
freemock.end();

with Mocha

example - test.js

var freemock = require('freemock');
before(function() {})
after(function() {})
beforeEach(function() {
	freemock.start();
});
afterEach(function() {
	freemock.end();
});

describe("test", function() {
	describe("test hello", function() {
		it("flag exist", function() {
			var hello = require('./../hello');
			var result = hello.hello(true);
		});
		it("flag not exist", function() {
			var mock_util = freemock.getMock('./shit');
			mock_util.setMethod({
				util: {
					expectArgs: [function(){}],
					willReturn: 1
				}
			})
			var hello = require('./../hello');
			hello.hello();
		})
	})
})

with Mocha and istanbul

example

run.js
var Mocha = require('mocha');
var mocha = new Mocha;
mocha.addFile(__dirname+'/test/hello.test.js')
mocha.run();
test.js
var freemock = require('freemock');
freemock.setIgnore(['./util'])//加上这个方法,让istanbul不检测这个模块
before(function() {})
after(function() {})
beforeEach(function() {
	freemock.start();
});
afterEach(function() {
	freemock.end();
});
describe("test", function() {
	describe("test hello", function() {
		it("flag exist", function() {
			var hello = require('./../hello');
			var result = hello.hello(true);
		});
		it("flag not exist", function() {
			var mock_util = freemock.getMock('./util');
			mock_util.setMethod({
				util: {
					expectArgs: [1],
					willReturn: 1
				}
			})
			var hello = require('./../hello');
			hello.hello();
		})

	})
})

command: istanbul cover run.js

freemock.setMethod(options)

options:

  • willReturn //假象方法将返回的值
  • willCallback //假象方法将执行的回调
  • expectArgs //假象方法预期的参数
  • willThrow //假象方法会返回的异常
  • runTime //假象方法会被执行的次数
0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago