Angular 5 karma jasmine-jquery соответствует

Как интегрировать совпадения karma jasmine jquery с angular 5

пожалуйста дайте развернутый ответ

я успешно загрузил jquery в конфигурацию кармы, например

module.exports = function (config) {
  config.set({
    basePath: '',

    frameworks: [ 'jasmine-jquery', 'jasmine', '@angular/cli'],
    plugins: [
      require('karma-jasmine'),
      require('karma-chrome-launcher'),
      require('karma-jasmine-html-reporter'),
      require('karma-coverage-istanbul-reporter'),
      require('@angular/cli/plugins/karma'),
      require('karma-jasmine-jquery'),
    ],

Но я понятия не имею, как импортировать его в spec runner.

Вот мой текущий импорт работает нормально

import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MyComponent} from './my.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { exec } from 'child_process';
import { DebugElement } from '@angular/core/src/debug/debug_node';
import { By } from '@angular/platform-browser';

использование приспособлений в порядке

  beforeEach(() => {
    fixture = TestBed.createComponent( MyComponent );
    component = fixture.componentInstance;
    contenTitleEL = fixture.
      debugElement.query( By.css('.contenTitle') ) ;
    fixture.detectChanges();
  });

тест в порядке, используя

  it('Should Display contenTitle', () => {
    expect( contenTitleEL ).toContain( contentTitle ) ;
  });

что я хочу сделать, это

  it('Should Display contenTitle', () => {
    expect( contenTitleEL ).toHaveText( contentTitle ) ;
  });

Обратите внимание, что я использовал angular-cli для создания проекта.

Обновлять

Похоже, это работает, даже если у меня есть

ошибка TS2339: свойство «toHaveText» не существует для типа «сопоставители».

Любая идея о том, как обойти эту ошибку и иметь функцию завершения кода

Время от времени тест ng отказывается загружаться из-за этой ошибки, связанной с машинописным текстом.


person Pascal    schedule 05.02.2018    source источник
comment
karma-jasmine-jquery readme говорит, что ожидается, что он будет использоваться с глобальным $j(). Вы пробовали это? jasmine-jquery говорит, что ожидается, что он будет использоваться с $() global. Вы пробовали это?   -  person Estus Flask    schedule 05.02.2018
comment
@estus $ не является функцией   -  person Pascal    schedule 05.02.2018


Ответы (1)


Наконец, найдите ответ, похоже, вам нужно добавить этот пакет npm

жасмин-jquery-сопоставители

настроить пакет typeript с помощью

{
  ....
  "compileOnSave": false,
  "compilerOptions": { 
    "types": [
      "jasmine",
      "jasmine-jquery-matchers"
    ], 
  ....
  }
}

Затем последний раз импортируйте пакет в spec.ts

import {  } from 'jasmine-jquery/lib/jasmine-jquery';
import {  } from 'jasmine-jquery-matchers';
person Pascal    schedule 06.02.2018