Как заглушить частные методы тестируемого класса sinon - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь заглушить приватный метод в классе. Я искал во многих блогах, которые не имеют правильных ответов или не имеют отношения к моей проблеме. Можем ли мы заглушить приватные методы?

Это мой код, который использует приватный метод, который я хочу заглушить:

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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...