我正在使用ng2项目中的第三方模块。我希望能够模拟这个模块进行测试,但模块本身并没有注入我的服务,只需要它。
如何覆盖此Client
以便我的测试不使用实际模块?
import {Injectable} from '@angular/core';
var Client = require('ssh2').Client;
@Injectable()
export class SshService {
constructor(){
//Should log "hello world"
Client.myFunc();
}
}
import { TestBed, inject } from '@angular/core/testing';
describe('My Service', () => {
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
SshService
]
});
});
it('should work as expected',
inject([SshService], (sshService:SshService) => {
sshService.Client = {
myFunc:function(){
console.log('hello world')
}
}
console.log(sshService.Client)
}));
});
答案 0 :(得分:0)
也许将第三方模块包装在angular2服务中并在SshService中注入该服务。