Ошибка углового модульного теста ($ не определено) - PullRequest
1 голос
/ 19 марта 2019

Я получаю сообщение об ошибке при попытке проверить мой компонент.

Вот my.component.spec.ts:

import { ComponentFixture, TestBed, async } from '@angular/core/testing';
import { MyComponent } from './my.component';
import { LocalStorageService } from '../../services/local-storage.service';
import { DataTablesModule } from 'angular-datatables';

fdescribe('MyComponent', () => {
  let component: MyComponent;
  let fixture: ComponentFixture<MyComponent>;
  let de: DebugElement;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [MyComponent],
      imports: [DataTablesModule.forRoot()],
      providers: []
    }).compileComponents().then(() => {
      fixture = TestBed.createComponent(MyComponent);
      component = fixture.componentInstance;
      fixture.detectChanges();
    });
  }));

  it('should create', () => {
    expect(component).toBeTruthy();
  });
});

А my.component.ts

import {Component, OnInit} из '@ angular / core';

@Component({
  selector: 'app-my',
  template: `
    <table datatable [dtOptions]="dtOptions">
      <thead>
        <tr>
          <th>Column A</th>
          <th>Column B</th>
        </tr>
      </thead>
      <tbody>
        <tr *ngFor="let col of myColumns">
          <td></td>
          <td></td>
        </tr>
      </tbody>
    </table>
  `,
  styleUrls: []
})
export class MyComponent implements OnInit {
  myColumns: any[] = [];

  constructor() { }

  ngOnInit() {}
}

Запуск этого дает мне ошибку:

Failed: $ is not defined

Когда я пытаюсь import * as $ from 'jquery' и добавляя $ к провайдерам, я получаю эту ошибку:

Failed: Can't resolve all parameters for jQuery: (?, ?).

Я пробовал МНОГИЕ разные способы заставить это работать, но ни один из них не работает. Пожалуйста, помогите!

1 Ответ

1 голос
/ 20 марта 2019

Проблема решена!

Мне нужно было добавить это (обратите внимание на свойство scripts конфигурации test) в мой файл angular.json:

    "test": {
      "builder": "@angular-devkit/build-angular:karma",
      "options": {
        "main": "src/test.ts",
        "polyfills": "src/polyfills.ts",
        "tsConfig": "src/tsconfig.spec.json",
        "karmaConfig": "src/karma.conf.js",
        "styles": [],
        "scripts": [
          "node_modules/jquery/dist/jquery.min.js",
          "node_modules/datatables.net/js/jquery.dataTables.js"
        ]
      }
    },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...