Halo semua,
di sebagian besar file saya, saya telah menggunakan metode di bawah ini -
var request = require('request');
request(url, function(error, response, body) {
if (!error && response.statusCode === 200) {
bagaimana cara menghentikan metode ini dalam pengujian unit?
sudah mencoba sinon.stub(request), tapi itu tidak membantu.
@simov sudah mencoba, tetapi tidak dapat menemukannya, apakah ada yang menemukan masalah ini?
Coba 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));
});
});
Contoh: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/
Atau kebutuhan tiruan
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 */))...
});
});
Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.
Komentar yang paling membantu
Coba proxyquire :
Contoh: http://vansande.org/2015/03/22/unit_testing_with_mocks_in_node_js/
Atau kebutuhan tiruan