多次调用每个函数实例的笑话单元测试参数,但结果略有不同

时间:2018-10-25 12:39:31

标签: javascript node.js unit-testing

我正在调用一个函数,该函数在我的一个函数中多次注销,并且我想测试每次注销时传递的args。

我确实有这项工作,但是此后稍有改变。

最初我是先记录一个字符串,然后再记录一个对象,即

myObject = {
  'one': 'one',
  'two': 'two'
}

myfunct() {
  log.info('some string', myObject);
  log.info('some other string', myObject);
}

我正在与

进行测试
// spying on logger
...
expect(spyLog).toHaveBeenNthCalledWith(1, 'some string', myObject);
expect(spyLog).toHaveBeenNthCalledWith(2, 'some other string', myObject);

我现在将对象更改为实际上包含将直接分配的字符串,即:

myNewObject(myString: string) {
  return {
    'string': myString,
    'one': 'one',
    'two': 'two'
  }
}

myfunct() {
  log.info(myNewObject('some string'));
  log.info(myNewObject('some other string'));
}

有没有一种方法可以测试传递的参数而不必创建每个不同对象的const?

即。我想避免出现以下情况:

myFirstObject = {
  'string': 'some string',
  'one': 'one',
  'two': 'two'
};

mySecondObject = {
  'string': 'some other string',
  'one': 'one',
  'two': 'two'
};

expect(spyLog).toHaveBeenNthCalledWith(1, myFirstObject);
expect(spyLog).toHaveBeenNthCalledWith(2, mySecondObject);

如果我有更多的这些日志输出,我不希望有大量的const定义几乎相同的信息...

0 个答案:

没有答案