angular测试用例,菜鸟教程angular
有角的怎么进行单元测试?下面本篇给大家整理分享四个有角的单元测试编写的高阶技巧,希望对大家有所帮助!
测试思路:
1.能单元测试,尽量单元测试优先2.不能单元测试,通过封装一层进行测试,譬如把测试的封装到一个组件,但又有弱于集成测试3.集成测试4.E2E测试本文使用的测试技术栈:苦豆12茉莉,虽然其他测试技术语法不同,但是整体思路差不多。【相关教程推荐: 《angular教程》 】
单元测试
beforeEach(()={
夹具=试验台。创建组件(横幅组件);
组件=夹具。组件实例;
夹具。检测更改();
});
函数测试
1.函数调用,且没有返回值
功能测试(索引:数字,fn:功能){
如果(fn){
fn(指数);
}
}请问如何测试?
const res=component.test(1,()={ });
期望(研究).tobe undefined();# 利用茉莉
它(调用测试时应该得到正确的数据,()={
常量参数={
fn:()={}
}
spyOn(param, fn )
组件测试(1,参数。fn);
expect(param.fn).toHaveBeenCalled();
})
结构指令HostListener测试
#代码
@指令({选择器:[ImageURlError] })
导出类ImageUrlErrorDirective实现在线更改{
构造函数(私有el: ElementRef) {}
@HostListener(error )
公共错误(){
这个。埃尔。原生元素。风格。display= none
}
}如何测试?
图片加载错误,才触发,那么想办法触发下错误即可指令一般都依附在组件上使用,在组件图像元素上,dispath下错误事件即可#1.添加一个自定义组件,并添加上自定义指令
@组件({
模板:` div
image src= https://XXX。党卫军。“png”imageurl错误/图像
/div ` 1
})
类TestHostComponent {
}
#2.把自定义组件视图实例化,并派发错误事件
beforeEach(waitForAsync(()={
试验台。configuretestingmodule({
声明:[
TestHostComponent,
imageurlrerror
]
});
}));
beforeEach(()={
夹具=试验台。创建组件(TestHostComponent);
组件=夹具。组件实例;
夹具。检测更改();
});
它(应该只允许数字,()={
const event=新的错误事件( error ,{ } as any);
const image=夹具。调试元素。查询(由。指令(ImageURlError));
形象。原生元素。调度事件(事件);//派发事件即可,此时错误()方法就会被执行到
});
善用 public,private,protected 修饰符
如果打算走单元测试,一个个方法测试,那么请合理使用公众的难度*如果不打算一个个方法的进行测试,那么可以通过组织数据,调用入口,把方法通过集成测试-难度***
测试click 事件
# xx.component.ts
@组件({
selecotr:仪表板-英雄-列表
})
仪表板英雄组件类{
公共卡=[{
点击:()={
.
}
}]
}
# html
仪表板-英雄-列表[卡片]=卡片 class=卡片
/dashboard-hero-list 中如何测试?
直接测试组件,不利用圣体利用密码返回的包含点击事件的对象集合,逐个调用点击,这样代码覆盖率会得到提高它(调用点击时应该得到正确的数据,()={
const卡=组件卡
卡片?forEach(card={
if(card.click){
卡片.点击(新事件(‘咔嚓’));
}
});
期待(卡?长度)。toBe(1);
});思路一:
利用TestHostComponent,包裹一下需要测试的组件然后利用夹具。原生元素。查询选择器(.卡片)找到组件上绑定点击元素;元素上,触发dispatchEvent,即可,思路二:
直接测试组件,不利用圣体
然后利用夹具。原生元素。查询选择器(.卡),找到绑定点击元素;
使用triggerEventHandler( click );
更多编程相关知识,请访问:编程视频!以上就是四个有角的单元测试编写的小技巧,快来看看!的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。