Как вы тестируете функцию, в которой много «этого»? - PullRequest
0 голосов
/ 11 июля 2019

Как мне протестировать эту функцию, которая не имеет возврата для проверки, я тестирую файл с большим количеством методов, которые меняют только флаги, как показано ниже.

customerDidProvideCellPhoneNumber() {
    this.screenElements.inputPhoneNumber.writable = true;
    this.screenElements.checkDidNotProvideEmail.writable = true;
    this.formGroup.get('phoneNumber').enable({ onlySelf: true });
    this.screenElements.btnSendSMS.enabled = true;
    this.screenElements.alertCellPhone.visible = false;
}

1 Ответ

0 голосов
/ 11 июля 2019

Предполагая, что вы собираетесь пройти модульный тест (в отличие от поведенческого теста с большей областью действия), вам следует рассмотреть возможность использования макета this, и утверждение его свойств было установлено, как и ожидалось.

function customerDidProvideCellPhoneNumber() {
    this.screenElements.inputPhoneNumber.writable = true;
}

let mockThis = { screenElements: { inputPhoneNumber: {} } };
customerDidProvideCellPhoneNumber.call(mockThis);
console.assert(mockThis.screenElements.inputPhoneNumber.writable === true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...