Инстанцирование компонентов в Жасмин не удается - PullRequest
0 голосов
/ 07 июня 2019

Я исправляю некоторые модульные тесты после обновления нашего проекта до Angular 7, и я столкнулся с проблемой в тесте, которая должна проверить, что компонент действительно создан.

Вот тест:

it('should build without a problem', () => {
expect(suite.appComponent).toBeTruthy();

});

Сбой из-за ошибки:

Ошибка: ожидается, что неопределенное значение не соответствует действительности.в на UserContext.(http://localhost:9876/_karma_webpack_/webpack:/src/app/app.component.spec.ts:93:32) в ZoneDelegate ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invoke (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone.js:391:1) в ProxyZoneSpec.push ../ node_modules / zone.js / dist / zone-testing.js.ProxyZoneSpec.onInvoke (http://localhost:9876/_karma_webpack_/webpack:/node_modules/zone.js/dist/zone-testing.js:308:1)

Вот настройки и все тесты вместе:

describe('App component', () => {
let suite: TestSuite;
beforeAll(() => { suite = <TestSuite>{}; });
afterAll(() => { suite = null; });

beforeAll(() => {
suite = <TestSuite>{};
});

beforeEach((done) => {
TestBed
  .configureTestingModule({
    declarations: [
      TestComponent,
      AppComponent,
      MockComponent

    ],
    providers: [
      { provide: Router, useClass: MockRouter }

    ]
    ,
    schemas: [ NO_ERRORS_SCHEMA ]
  })
  .compileComponents().then(() => {
    suite.fixture = TestBed.createComponent(TestComponent);
    suite.appComponent = 
suite.fixture.debugElement.children[0].componentInstance;
    suite.localStorageService = 
suite.fixture.debugElement.children[0].injector.get(
      MyStorageService
    );
    suite.loginService = 
suite.fixture.debugElement.children[0].injector.get(
      MyLoginService
    );
    suite.authenticationService = 
suite.fixture.debugElement.children[0].injector.get(
      MyauthService
    );
    done();
 });
});

  it('should build without a problem', () => {
  expect(suite.appComponent).toBeTruthy();
});

Любая помощь, наиболее ценимая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...