2017-07-07 105 views
2

我开始学习使用茉莉花的单元测试。也许有人可以给我解释一下 - 我需要怎么检查创建新的对象,如:创建对象的单元测试

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'); expect(outLog.request.title).toEqual('title');

谢谢!

回答

0

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

为了得到这个你首先需要做比较对象文本:

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

这也消除逻辑从所有期望陈述,应维护和调试有很大的帮助。另外,当有许多不同的断言时,先前的断言掩盖了后面的断言,创建不必要的反馈循环时,同一件事情可以用一个断言来完成。其中一位单元测试思想领导者通过推荐单元测试应该只有一个single assertion来帮助他们保持专注,减少调试时间并使其更易于工作和理解,从而解决了这个问题。

+0

嗨!感谢您的解释!在我期望之前需要定义outLog吗?谢谢! –