При модульном тестировании нужно ли отправлять полный реалистичный параметр объекта?Или вы просто отправляете параметр объекта, содержащий свойства, которые необходимы для функции?
Например, вот пример функции, которая требует модульного теста:
function ChangeName(person) {
if (person !== null) {
let {firstName} = person.firstName;
firstName = firstName + '_firstName';
person.firstName = firstName;
return person;
}
return person;
}
Вот пример теста, которыйотправляет полный объект:
expect(
ChangeName(
{
firstName: 'Juan',
lastName: 'dela Cruz',
age: 22,
gender: 'Male',
aboutMe: 'About_Me',
schools:[
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'}
]
}
)
).toEqual(
{
firstName: 'Juan_firstName',
lastName: 'dela Cruz',
age: 22,
gender: 'Male',
aboutMe: 'About_Me',
schools:[
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'},
{id: 1, name: 'School Name 1'}
]
}
);
Вот пример теста отправляет объект, свойства которого необходимы только для функции (включая lastName, только для образца):
expect(
ChangeName(
{
firstName: 'Juan',
lastName: 'dela Cruz',
}
)
).toEqual(
{
firstName: 'Juan_firstName',
lastName: 'dela Cruz',
}
);