import {Goal} from '../../providers/goal/goal';
import {GoalSettingsPage} from './goal-settings';
import {Modal, Alert, NavParams, ViewController, Events} from 'ionic-angular';
import {provide,ReflectiveInjector,Component} from '@angular/core'
import {FormBuilder} from '@angular/common';
import {
beforeEach,
beforeEachProviders,
describe,
expect,
it,
xit,
TestComponentBuilder,
ComponentFixture,
inject,
async
} from '@angular/core/testing';
describe('Goal Settings', () => {
it('should display header title: "Some Title"', inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb.createAsync(GoalSettingsPage).then((fixture) => {
fixture.detectChanges();
var compiled = fixture.debugElement.nativeElement;
expect(compiled.innerHTML).toContain('ion-title');
expect(compiled.querySelector('span')) .toHaveText('Cancel');
expect(compiled.querySelector('ion-title') .innerText).toBe('DrEvil');
});
}));
TypeError:无法读取属性' createAsync'未定义的
Pascal在这里写道:http://5thingsangular.github.io/2016/04/11/issue-1.html injectAsync
已被弃用,那么我如何createAsync
喜欢那些很酷的家伙呢?
更新:错误消失。现在我明白了:
错误:没有TestComponentBuilder的提供程序!
UPDATE2:
通过注入描述范围而不是范围来解决:
let tcb;
//setup
beforeEachProviders(() => [
TestComponentBuilder
]);
beforeEach(inject([TestComponentBuilder], _tcb => {
tcb = _tcb
}));
新错误
错误:没有编译器的提供程序!
答案 0 :(得分:5)
导入TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS
和TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS
,如下所示:
import {
TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS, TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
} from '@angular/platform-browser-dynamic/testing';
setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS, TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);
..解决了我的上一次错误。