【发布时间】:2021-12-10 04:19:08
【问题描述】:
我正在学习使用 Mocha 和 Chai 进行测试,并且有一个关于存根函数的问题。我正在尝试对映射数组并以 CSV 格式返回它的函数进行存根。但是,我的测试失败并显示以下消息:
ReferenceError: firstName 未定义
我理解的意思是测试找不到它,但我真的不明白为什么,因为我觉得我已经声明了它?任何帮助或指出我正确的方向都会有所帮助。我的代码和测试将在下面:
export default ({
teamId,
allApproverUserItemsForTeam = defaultAllApproverUserItemsForTeam,
}) => {
const teamApprovers = allApproverUserItemsForTeam({ teamId });
const csvContent = teamApprovers.map(teamApprover =>
`${teamApprover.firstName}, ${teamApprover.lastName}, ${teamApprover.emailAddress}`,
);
const joinedApproversList = csvContent.join();
return joinedApproversList;
};
describe('create_team_approvers_csv_test', () => {
describe('given a teamId for a team that has a list of approvers', () => {
const teamId = randoms.randomId();
const allApproverUserItemsForTeam = sinon.stub();
const approversForTeam = [
{
id: 'fwwfw',
emailAddress: 'joe@bloggs.com',
firstName: 'Joe',
lastName: 'Bloggs',
title: 'Mr',
isTeamProfile: false,
version: 1,
},
{
id: 'wgerher6446',
emailAddress: 'jane@doe.com',
firstName: 'Jane',
lastName: 'Doe',
title: 'Mrs',
isTeamProfile: false,
version: 3,
},
];
allApproverUserItemsForTeam.withArgs({ teamId }).returns(approversForTeam);
it('should create a list of approvers in a required CSV format', () => {
const expected = {
firstName,
lastName,
emailAddress,
};
const result = createTeamApproversCsv({ teamId });
expect(result).to.be.deep.equal(expected);
});
});
});
【问题讨论】:
标签: javascript mocha.js chai sinon