您如何测试内部有很多“ this”的函数?

时间:2019-07-11 17:54:46

标签: javascript angular unit-testing tdd

我该如何测试该没有返回验证值的函数,我正在使用许多方法来测试文件,这些方法只会改变大部分标志,如下所示。

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 :(得分:0)

假设您要进行单元测试(而不是较大范围的行为测试),则应考虑使用模拟this并声明其属性已按预期设置。

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

let mockThis = { screenElements: { inputPhoneNumber: {} } };
customerDidProvideCellPhoneNumber.call(mockThis);
console.assert(mockThis.screenElements.inputPhoneNumber.writable === true);