如何获得诺克的回应
How to get the response from nock
我一直在编写一些单元测试,但我发现我似乎找不到测试异步函数的好方法。所以我找到了诺克。看起来很酷,前提是它有效。我显然遗漏了一些东西...
import nock from 'nock';
import request from 'request';
const profile = {
name: 'John',
age: 25
};
const scope = nock('https://mydomainname.local')
.post('/api/send-profile', profile)
.reply(200, {status:200});
request('https://mydomainname.local/api/send-profile').on('response', function(request) {
console.log(typeof request.statusCode); // this never hits
expect(request.statusCode).to.equal.(200);
});
request
永远不会发生,那么我如何测试诺克是否真的返回 {status:200}
?我也试过 fetch
和常规 http
电话。这让我觉得这与我的箭尾密码有关?预先感谢您的帮助!
Nock 不会 return {status:200}
因为它正在拦截 POST
请求,但是 request
语句正在发送 GET
请求。
您似乎想拦截指定 profile
的 POST
请求?代码将是:
var nock = require('nock');
var request = require('request');
const profile = {
name: 'John',
age: 25
};
const scope = nock('https://mydomainname.local')
.post('/api/send-profile', profile)
.reply(200, {status:200});
request.post('https://mydomainname.local/api/send-profile', {json: {name: 'John', age: 25}}).on('response', function(request) {
console.log(request.statusCode); // 200
});
我一直在编写一些单元测试,但我发现我似乎找不到测试异步函数的好方法。所以我找到了诺克。看起来很酷,前提是它有效。我显然遗漏了一些东西...
import nock from 'nock';
import request from 'request';
const profile = {
name: 'John',
age: 25
};
const scope = nock('https://mydomainname.local')
.post('/api/send-profile', profile)
.reply(200, {status:200});
request('https://mydomainname.local/api/send-profile').on('response', function(request) {
console.log(typeof request.statusCode); // this never hits
expect(request.statusCode).to.equal.(200);
});
request
永远不会发生,那么我如何测试诺克是否真的返回 {status:200}
?我也试过 fetch
和常规 http
电话。这让我觉得这与我的箭尾密码有关?预先感谢您的帮助!
Nock 不会 return {status:200}
因为它正在拦截 POST
请求,但是 request
语句正在发送 GET
请求。
您似乎想拦截指定 profile
的 POST
请求?代码将是:
var nock = require('nock');
var request = require('request');
const profile = {
name: 'John',
age: 25
};
const scope = nock('https://mydomainname.local')
.post('/api/send-profile', profile)
.reply(200, {status:200});
request.post('https://mydomainname.local/api/send-profile', {json: {name: 'John', age: 25}}).on('response', function(request) {
console.log(request.statusCode); // 200
});