嗨我正在使用用angular-cli开发的Angular 2。
我有一个简单的流媒体服务,由导入的流媒体模块组成。我想用另一个模拟模块模拟导入的模块,但无法弄清楚如何。
我的服务类就是这样
import { streaming } from './streaming'
@Injectable()
export class StreamingService {
constructor() {}
streaming = streaming;
}
我的测试是标准生成的测试规范文件
import { streaming } from './streaming'
import { mockStreaming } from './mock-streaming'
describe('Service: Streaming', () => {
beforeEach(() => {
spyOn(streaming);
TestBed.configureTestingModule({
providers: [StreamingService],
imports: mockStreaming
})
});
我想知道我是否应该将流属性作为构造函数中的参数包含在内,但我不想这样做。
我可以在karma.conf或test.ts文件中做些什么吗?
答案 0 :(得分:1)
您可以创建MockStreamingService
扩展StreamingService
:
@Injectable()
export class MockStreamingService {
constructor() {}
//And then mock methods, properties etc...
}
然后在你的测试中:
describe('Service: Streaming', () => {
beforeEach(() => {
spyOn(streaming);
TestBed.configureTestingModule({
providers: [{provide:StreamingService, useClass:MockStreamingService}]
})
});