我试图在我的角度4项目中设置测试,以获得使用Google gapi的服务。 我遇到的问题是变量是全局声明但不是模拟的,因此当我运行测试时,我得到以下错误:
ReferenceError:未定义gapi
如何模拟gapi全局变量(及其对load和auth2的调用)?
这是我的2个类(实现和测试类)
组件类
declare const gapi: any;
@Component({
selector: 'app-register-google',
templateUrl: './register-google.component.html',
styleUrls: ['./register-google.component.css']
})
export class RegisterGoogleComponent implements OnInit, AfterViewInit {...}
测试课
describe('RegisterGoogleComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [RegisterGoogleComponent]
})
.compileComponents();
}));
it('should create', () => {
expect(component).toBeTruthy();
});
});
答案 0 :(得分:2)
我在使用Google API常量时遇到了类似的问题。
@estus是正确的;您可以在beforeEach
块中的window上定义全局变量:
beforeEach(() => {
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
window['gapi'] = {
load() {
return null;
},
anotherFunction() {
return null;
}
}
}