【发布时间】:2018-12-07 07:55:06
【问题描述】:
进行单元测试时,是否必须发送完整的真实对象参数? 或者您只是发送一个包含函数所需属性的对象参数?
例如,这是一个需要单元测试的示例函数:
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'}
]
}
);
这是一个示例测试发送一个对象,该对象具有仅在函数中需要的属性(包括姓氏,仅用于示例):
expect(
ChangeName(
{
firstName: 'Juan',
lastName: 'dela Cruz',
}
)
).toEqual(
{
firstName: 'Juan_firstName',
lastName: 'dela Cruz',
}
);
【问题讨论】:
-
可以使用Sinon.js等模拟框架模拟对象
标签: javascript reactjs unit-testing testing jestjs