Я пытаюсь заглушить приватный метод в классе. Я искал во многих блогах, которые не имеют правильных ответов или не имеют отношения к моей проблеме. Можем ли мы заглушить приватные методы?
Это мой код, который использует приватный метод, который я хочу заглушить:
public static async create(roleTO: RoleTO): Promise<RoleTO> {
log.trace('Inside create method with roleTO: ', roleTO);
roleTO.name = roleTO.name.trim();
await this.validateIfRoleNameIsTaken(roleTO); //validateIfRoleNameIsTaken it is a private method. I am trying to stub this method
let rolePO: RoleDocument = <RoleDocument>PoToConverter.getRoleTo2Po(roleTO);
console.log(rolePO,'this is rolelPO');
log.trace('Persisting Role: ', rolePO);
rolePO = await rolePO.persist();
console.log(rolePO._id,'tydtydytd');
roleTO._id = rolePO._id;
console.log(roleTO);
return roleTO;
}
Это определение приватного метода:
private static async validateIfRoleNameIsTaken(role: RoleTO | RolePO): Promise<void> {
log.trace(`Inside validateIfRoleNameIsTaken method with role: `, role);
let RoleModel: RoleModel = <RoleModel>model(ROLE_MODEL);
let existingRoles: RolePO[] = await RoleModel.findByName(role.name);
log.debug(`Fetched following roles from storage: `, existingRoles);
ValidationUtil.failIfMatchExists(role.name, existingRoles);
}