Я хочу попробовать жасмин в закусочной. Более конкретно, я тестирую следующие два случая:
- Что сервис создан
- Метод внутри него, который будет вызываться
закусочная.обслуживание
import { Injectable, NgZone } from '@angular/core';
import { MatSnackBar } from '@angular/material';
@Injectable({
providedIn: 'root'
})
export class SnackbarService {
constructor(
public snackBar: MatSnackBar,
private zone: NgZone
) { }
public open(message, action, duration = 1000) {
this.zone.run(() => {
this.snackBar.open(message, action, { duration });
})
}
}
закусочная.service.spec
import { TestBed } from '@angular/core/testing';
import { SnackbarService } from './snackbar.service';
describe('SnackbarService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: SnackbarService = TestBed.get(SnackbarService);
expect(service).toBeTruthy();
});
it('should call open()', () => {
const service: SnackbarService = TestBed.get(SnackbarService);
const spy = spyOn(service, 'open');
service.open('Hello', 'X', 1000);
expect(spy).toHaveBeenCalled();
})
});
После запуска тестов Karma выдает следующие ошибки:
- SnackbarService > должен вызывать open() NullInjectorError: StaticInjectorError(DynamicTestModule)[MatSnackBar]: StaticInjectorError(Platform: core)[MatSnackBar]: NullInjectorError: Нет провайдера для MatSnackBar!
- SnackbarService> должен быть создан NullInjectorError: StaticInjectorError(DynamicTestModule)[MatSnackBar]: StaticInjectorError(Platform: core)[MatSnackBar]: NullInjectorError: Нет провайдера для MatSnackBar!
Любые идеи о том, как мне исправить эту проблему?
Спасибо!