Я пытаюсь смоделировать структурную директиву в тесте компонента, но я получаю ошибку.
Следующий тест завершается неудачно с сообщением:
Привязка свойства appSome не используется ни одной директивойна встроенном шаблоне.Убедитесь, что имя свойства написано правильно, и все директивы перечислены в «@ NgModule.declarations».("[ОШИБКА ->] ТЕСТ
Я издеваюсь над структурной директивой SomeDirective
с SomeMockDirective
, определенной в app.component.spec.ts. Проверка не пройдена .
Если я переключаю объявления так, чтобы вместо них содержалось SomeDirective
- , тест проходит .
Мне интересно, почему я не могу заставить его работать с проверенной версией.
Шаблон:
<h1 *appSome="true">TEST</h1>
Директива (вид продукции :)):
@Directive({
selector: '[appSome]'
})
export class SomeDirective implements OnDestroy {
show: boolean;
...
}
Тест:
import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { Directive, NO_ERRORS_SCHEMA } from '@angular/core';
@Directive({
selector: '[appSome]'
})
export class SomeMockDirective {}
describe('AppComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [AppComponent, SomeMockDirective], // test is failing, switch the directive to SomeDirective and it passes
schemas: [NO_ERRORS_SCHEMA]
}).compileComponents();
}));
it('should create the app', () => {
const fixture = TestBed.createComponent(AppComponent);
const app = fixture.debugElement.componentInstance;
expect(app).toBeTruthy();
});
});
Репродукция репо: https://github.com/felikf/angular-test-directive
git clone https://github.com/felikf/angular-test-directive.git
npm i
ng test
У меня вопрос: почему не работает максируемая версия, даже если макетная версия указана в providers: []
и директива имеет тот же селектор?