我正在使用节点js,茉莉花框架进行API自动化测试。我有一个POST操作。我使用npm-request进行操作。
我在测试用例中的代码如下
...
if (e.hash == hash && ((k = e.key) == key || (key != null && key.equals(k))))
break;
...
运行此测试用例时,出现以下错误
describe('Verification of BS_057_LockDN',()=>{
it('Verify success response for BS_057_LockDN',function(done){
var path=require('path');
let inputJson=require(path.resolve('./inputRequests/lockDNInput.json'));
let endpoint=require(path.resolve('./config/endpointLockDN.json'));
const fetch=require('node-fetch');
let baseUrl=endpoint.url;
let apikey=endpoint.apikey;
let fullUrlWithQueryParameters= baseUrl + "?apikey=" + apikey
console.log(fullUrlWithQueryParameters);
console.log(inputJson);
console.log("test");
var request = require('request');
request.post(fullUrlWithQueryParameters,inputJson,
function (error, response, body) {
console.log('ew fu----------------------------------------------')
if (error)
{
console.log(error);
return done();
}
console.log('first');
console.log('HTTP STATUS CODE:'+ response.statusCode);
console.log('second');
console.log(body);
expect(body).not.toBeUndefined();
expect(body.Header.MsgType_T).toBe('RESPONSE');
done();
}
);
},1000*60*60)
})
我不确定为什么我的POST操作无法定义。我使用的方法正确吗?
答案 0 :(得分:0)
您的请求似乎还可以。但您尝试从正文中的未定义字段读取数据
expect(body.Header.MsgType_T).toBe('RESPONSE');
此处“ Header”在体内不存在。
答案 1 :(得分:0)
从不进行两步对象访问而不检查它。
在这里您要访问“ expect(body.Header.MsgType_T).toBe('RESPONSE');”中的“ body.Header.MsgType_T”无需检查“ body.Header”是否存在。
希望这会有所帮助。