私は自分のアプリケーションにいくつかの単体テストを書いていますが、require( 'dependencyname')で使われている依存関係をどういうわけか "模倣"できますか?ストレート彼らのドキュメントのうちnode.jsでのテストの依存関係を模擬する方法は?
1
A
答えて
3
You are looking for Proxyquire :)
//file1
var get = require('simple-get');
var assert = require('assert');
module.exports = function fetch (callback) {
get('https://api/users', callback);
};
//test file
var proxyquire = require('proxyquire');
var fakeResponse = {status:200};
var fetch = proxyquire('./get', {
'simple-get': function (url, callback) {
process.nextTick(function() {
callback(null, fakeResponse)
})
}
});
fetch(function (err, res) {
assert(res.statusCode, 200)
});
。
0
はい、入力のための冗談で例えば=>https://facebook.github.io/jest/
// require model to be mocked
const Mail = require('models/mail');
describe('test ',() => {
// mock send function
Mail.send = jest.fn(() => Promise.resolve());
// clear mock after each test
afterEach(() => Mail.send.mockClear());
// unmock function
afterAll(() => jest.unmock(Mail.send));
it('',() =>
somefunction().then(() => {
// catch params passed to Mail.send triggered by somefunction()
const param = Mail.send.mock.calls[0][0];
})
);
});
+0
このような小さなユースケースでは、フレームワークを示唆するのが少しだと思いませんか? :) –
+1
はい、おそらくあなたは正しいです:) – baar
+0
しかし、私はあなたのenthousiasmを理解することができます。冗談は素晴らしいです。 –
感謝。私の答えを修正しました。 –