创建对象的单元测试

时间:2017-07-07 13:03:34

标签: javascript unit-testing 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',
    ...
    ...
  },
}

期望(outLog.request.method).toEqual(' POST&#39);    期望(outLog.request.title).toEqual('标题&#39);

谢谢!

1 个答案:

答案 0 :(得分:0)

对于检查对象,当你比较两个对象时,大多数框架通常会提供某种漂亮的差异。

要实现这一目标,首先需要将其与对象文字进行比较:

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

这也从所有期望语句中删除了很多逻辑,这有助于维护和调试。此外,当存在许多不同的断言时,较早的断言会掩盖后面的断言,从而创建不必要的反馈循环,当使用单个断言完成相同的操作时。其中一个单元测试思想领袖通过建议单元测试应该只有single assertion来帮助他们集中注意力,减少调试时间,并使它们更易于工作和理解。