Angular2茉莉花测试图像源
我有一个模板中有图像的组件Angular2茉莉花测试图像源,angular,karma-jasmine,gulp-karma,Angular,Karma Jasmine,Gulp Karma,我有一个模板中有图像的组件 <div class="logo"><img src="../images/logo.png"/></div> 要说应用程序渲染图像很好,只有因果报应在抱怨 任何建议都将不胜感激。假设您正在使用karma jasmine运行测试。这些文件将托管在端口9876上 假设您的img src是/assets/images/logo.png,那么您应该期望src是http://localhost:9876/assets/images/lo
<div class="logo"><img src="../images/logo.png"/></div>
要说应用程序渲染图像很好,只有因果报应在抱怨
任何建议都将不胜感激。假设您正在使用karma jasmine运行测试。这些文件将托管在端口9876上
假设您的img src是
/assets/images/logo.png
,那么您应该期望src是http://localhost:9876/assets/images/logo.png
而不仅仅是/assets/images/logo.png
您可以尝试以下方法:
it('should render the logo', async(() => {
const fixture = TestBed.createComponent(AppComponent);
fixture.detectChanges();
const compiled = fixture.debugElement.nativeElement;
expect(compiled.querySelector('div.logo>img').src).toContain('/images/logo.png');
}));
您还可以使用karma.conf.js中的proxies和files属性为文件提供服务并对其进行代理 添加要在文件属性中提供的文件
{ pattern: './src/assets/**', watched: false, included:false, served:true, nocache:false }
proxies: {
'/assets/': '/base/src/assets/'
}
此外,要使用不同的url/路径代理这些文件,请更新proxies属性
{ pattern: './src/assets/**', watched: false, included:false, served:true, nocache:false }
proxies: {
'/assets/': '/base/src/assets/'
}
现在,当您尝试访问
http://localhost:9876/assets/logo.png
这将是对src/assets/logo.png
的代理调用(所有src资产也可以这样访问http://localhost:9876/base/src/assets/logo.png
)这应该是公认的答案。我自己就试过了,效果很好。这验证了image元素是否存在,以及源是否指向特定的URL字符串。但是,如何检查“/images/logo.png”是否确实存在?请提供一个代码示例,我认为这正是提问者想要的。