こんにちは、みんな、
私のファイルのほとんどで、私は以下の方法を使用しました-
var request = require('request');
request(url, function(error, response, body) {
if (!error && response.statusCode === 200) {
ユニットテストでこのメソッドをスタブするにはどうすればよいですか?
すでにsinon.stub(request)を試しましたが、それは役に立ちません。
@simovはすでに試しましたが、見つけることができませんでした。誰かがこの問題にすでに遭遇しましたか?
proxyquireを試してください:
var proxyquire = require('proxyquire');
var requestSpy = jasmine.createSpy();
var myFile = proxyquire('../../file/that/requires/request', {
request: requestSpy,
});
describe('the test', function() {
it('should use the mock', function() {
myFile.makeARequest();
expect(requestSpy).toHaveBeenCalledWith(jasmine.objectContaining({
headers: jasmine.objectContaining({
Accept: 'application/json',
}),
method: 'GET',
}), jasmine.any(Function));
});
});
例: http :
またはモックが必要
var mock = require('mock-require');
var requestSpy = jasmine.createSpy();
mock('request', requestSpy);
var myFile = require('../../file/that/requires/request');
describe('the test', function() {
it('should use the mock', function() {
myFile.makeARequest();
expect(requestSpy).toHaveBeenCalled();
// and you should be able to invoke the callback also, e.g.
// var callback = requestSpy.calls.first().args[1];
// expect(callback(/* vars */))...
});
});
この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。
最も参考になるコメント
proxyquireを試してください:
例: http :
またはモックが必要