Как принять пользовательский ввод во время теста мокко (NodeJs) - PullRequest
2 голосов
/ 31 января 2020

Я использую mocha и chai для тестирования всех REST-API в моем проекте.
Проблема заключается в том, что для регистрации пользователя я отправляю код активации на электронный адрес пользователя.
Поэтому для проверки "Активация" API call ", мне нужно вручную ввести код активации в консоли.
Но это делает тест go несвоевременным.

Мое временное решение:

describe('User API calls', function () {
    this.timeout(30000);

    it('should should successfully activate user', done => { //Needs user intervention
        console.log('You have less than 30 seconds to enter!');
        const activationCode = readlineSync.question('What is the activation code? ');
        chai.request(configs.url)
            .get('/user/activation')
            .query({'code': activationCode})
            .end((err, res) => {
                expect(res.body).to.haveOwnProperty('success');
                done();
            });
    });
}

Это имеет очевидное ограничение, хотя, если мне потребуется более 30 секунд для ввода кода активации на консоли, тест не пройден из-за тайм-аута.

Может кто-нибудь предложить решение или лучший обходной путь?

1 Ответ

1 голос
/ 31 января 2020

Я постараюсь ответить на это с ограниченной информацией о вашем API. Разве этот тест не имел бы больше смысла, если бы вы включили также регистрационный вызов? Вы ожидаете запрос на регистрацию и используете этот ответ для запроса "/ пользователь / активация".

...