任何人都可以帮助我在jasmine中的函数中测试条件语句
vm.onDisciplineCodeChange = function() {
if ('other' === vm.selectedDisciplineCode) {
vm.selectedDiscipline.code = null;
vm.selectedDiscipline.userDefined = true;
} else if('' === vm.selectedDisciplineCode) {
vm.selectedDiscipline = {
code: null,
userDefined: false,
userDefinedDiscipline: null
}
} else {
vm.selectedDiscipline = {
code: vm.selectedDisciplineCode,
userDefined: false,
userDefinedDiscipline: null
}
}
vm.onDisciplineUpdated({discipline: vm.selectedDiscipline});
};
我对单元测试很陌生,以下是我在生成报告中的输出。
答案 0 :(得分:1)
你看到了它,因为单元测试没有涉及它 使用以下代码在单元测试中覆盖它
it('if discipline is other', function() {
// spy on
spyOn(vm, 'onDisciplineUpdated');
vm.selectedDisciplineCode = 'other';
vm.onDisciplineCodeChange();
expect(vm.selectedDiscipline.code).toBe(null);
expect(vm.selectedDiscipline.userDefined).toBe(true);
expect(vm.onDisciplineUpdated).toBeCalledWith({
discipline: vm.selectedDiscipline
});
})
it('if discipline is null', function() {
vm.selectedDisciplineCode = '';
vm.onDisciplineCodeChange();
var result = {
code: null,
userDefined: false,
userDefinedDiscipline: null
};
expect(vm.selectedDiscipline).toBe(result);
})
it('if discipline is different', function() {
vm.selectedDisciplineCode = 'nothing';
vm.onDisciplineCodeChange();
var result = {
code: vm.selectedDisciplineCode,
userDefined: false,
userDefinedDiscipline: null
};
expect(vm.selectedDiscipline).toBe(result);
})