Javascript 创建对象的单元测试

Javascript 创建对象的单元测试,javascript,unit-testing,jasmine,Javascript,Unit Testing,Jasmine,我开始用jasmine学习单元测试。也许有人可以向我解释-我需要如何检查创建新对象,如: const outLog = { time: newTime, request: { direction: 'OUT', method: data.request.method, title: data.request.url, body: data.request.data, headers: getHeaders(data.request.headers)

我开始用jasmine学习单元测试。也许有人可以向我解释-我需要如何检查创建新对象,如:

const outLog = {
  time: newTime,
  request: {
    direction: 'OUT',
    method: data.request.method,
    title: data.request.url,
    body: data.request.data,
    headers: getHeaders(data.request.headers),
  },
  response: {
    status: '',
    headers: {},
    body: {},
  },
};

if (data.response && data.response !== null) {
  outLog.response.status = data.response.status;
  outLog.response.body = data.response.data;
  outLog.response.headers = getHeaders(data.response.headers);
}

log.out.push(outLog);
我是否需要用真实数据填写请求方法、请求标题和检查等字段

const outLog = {
  request: {
    method: 'POST',
    title: 'title',
    ...
    ...
  },
}
expect(outLog.request.method).toEqual('POST'); expect(outLog.request.title).toEqual('title')


谢谢

对于检查对象,大多数框架在比较两个对象时通常提供某种相当不同的功能

要获得此结果,首先需要将其与对象文字进行比较:

expect(outLog).toEqual({
   request: {
     method: 'POST',
     title: 'title',
     ...
})

这还将从所有expect语句中删除大量逻辑,这将有助于维护和调试。此外,当存在许多不同的断言时,较早的断言会掩盖较后的断言,从而创建不必要的反馈循环,而相同的事情可以通过单个断言完成。单元测试的一位思想领袖对此提出了建议,他建议单元测试应该只有一种方法来帮助他们集中精力,减少调试时间,并使他们更容易工作和理解。

Hi!谢谢你的解释!我需要在预期输出之前定义输出日志吗?谢谢