Jest-модульное тестирование аргументов каждого экземпляра функции при многократном вызове, но с немного отличающимися результатами - PullRequest
0 голосов
/ 25 октября 2018

Я вызываю функцию, которая выходит из системы несколько раз в одной из моих функций, и я хочу проверить аргументы, передаваемые каждый раз, когда она выходит из системы.

У меня это работало, но с тех порнемного изменил то, что он передает.

Первоначально я записывал строку, а затем объект, то есть.

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'));
}

Есть ли способ, которым я могу проверить переданные аргументы, не создавая константы для каждого отличающегося объекта?

т.е.Я хочу избежать такой ситуации, как:

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);

Если у меня будет больше таких журналов, я не хочу, чтобы горы констант определяли почти идентичную информацию ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...