Я вызываю функцию, которая выходит из системы несколько раз в одной из моих функций, и я хочу проверить аргументы, передаваемые каждый раз, когда она выходит из системы.
У меня это работало, но с тех порнемного изменил то, что он передает.
Первоначально я записывал строку, а затем объект, то есть.
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);
Если у меня будет больше таких журналов, я не хочу, чтобы горы констант определяли почти идентичную информацию ...