Angularjs 如何在jasmine中对条件语句进行单元测试
有人能帮我在jasmine中测试函数中的条件语句吗Angularjs 如何在jasmine中对条件语句进行单元测试,angularjs,unit-testing,jasmine,karma-jasmine,Angularjs,Unit Testing,Jasmine,Karma Jasmine,有人能帮我在jasmine中测试函数中的条件语句吗 vm.onDisciplineCodeChange = function() { if ('other' === vm.selectedDisciplineCode) { vm.selectedDiscipline.code = null; vm.selectedDiscipline.userDefined = true;
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});
};
我对单元测试非常陌生,下面是我在生成的报告中得到的输出
您之所以看到它,是因为单元测试中没有涉及它 使用以下代码在单元测试中介绍它
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);
})