Angular 上的 switch 语句的单元测试
Unit-Test for a switch statement on Angular
我是 angular 单元测试的新手,我不知道如何测试这个开关:
displayBadge(text: any) {
switch (text) {
case 'blabla':
return 'badge badge-pill badge-success';
case 'lalala':
return 'badge badge-pill badge-secondary';
case 'uuuu':
return 'badge badge-pill badge-warning';
case 'ooooo':
return 'badge badge-pill badge-warning';
case 'eeee':
return 'badge badge-pill badge-warning';
case 'zzzzz':
return 'badge badge-pill badge-dark';
case 'aaaaa':
return 'badge badge-pill badge-dark';
case 'qqqqq':
return 'badge badge-pill badge-success';
case 'ccccc':
return 'badge badge-pill badge-warning';
case 'rrrrr':
return 'badge badge-pill badge-success';
case 'ttttt':
return 'badge badge-pill badge-warning';
case 'fffff':
return 'badge badge-pill badge-success';
default:
return '';
我在 VSCODE 上使用 Simontest 插件,代码覆盖率总是告诉我我丢失了大约 80% 的覆盖率,这就是这个开关。
我在我的 spec.ts 文件上试过这种方法:
it('text aaaaa', () => {
component.text ='aaaaa'
component.displayBadge(component.text);
expect('badge badge-pill badge-secondary');
});
但是没用。
文本在我的 ts 中是这样定义的:
@Input()
text!: any;
我看到还有其他关于测试开关的帖子,我已经尝试了我在堆栈上看到的所有内容,通常在 Google 上,但 SimonTest 总是告诉我这个功能没有经过测试.
由于 displayBadge() 返回的是您正在测试的值,因此类似这样的操作应该有效:
it('text aaaaa', () => {
expect(component.displayBadge('aaaaa')).toEqual('badge badge-pill
badge-secondary');
});
我是 angular 单元测试的新手,我不知道如何测试这个开关:
displayBadge(text: any) {
switch (text) {
case 'blabla':
return 'badge badge-pill badge-success';
case 'lalala':
return 'badge badge-pill badge-secondary';
case 'uuuu':
return 'badge badge-pill badge-warning';
case 'ooooo':
return 'badge badge-pill badge-warning';
case 'eeee':
return 'badge badge-pill badge-warning';
case 'zzzzz':
return 'badge badge-pill badge-dark';
case 'aaaaa':
return 'badge badge-pill badge-dark';
case 'qqqqq':
return 'badge badge-pill badge-success';
case 'ccccc':
return 'badge badge-pill badge-warning';
case 'rrrrr':
return 'badge badge-pill badge-success';
case 'ttttt':
return 'badge badge-pill badge-warning';
case 'fffff':
return 'badge badge-pill badge-success';
default:
return '';
我在 VSCODE 上使用 Simontest 插件,代码覆盖率总是告诉我我丢失了大约 80% 的覆盖率,这就是这个开关。
我在我的 spec.ts 文件上试过这种方法:
it('text aaaaa', () => {
component.text ='aaaaa'
component.displayBadge(component.text);
expect('badge badge-pill badge-secondary');
});
但是没用。
文本在我的 ts 中是这样定义的:
@Input()
text!: any;
我看到还有其他关于测试开关的帖子,我已经尝试了我在堆栈上看到的所有内容,通常在 Google 上,但 SimonTest 总是告诉我这个功能没有经过测试.
由于 displayBadge() 返回的是您正在测试的值,因此类似这样的操作应该有效:
it('text aaaaa', () => {
expect(component.displayBadge('aaaaa')).toEqual('badge badge-pill
badge-secondary');
});