1
所以我有一個指令,其採用輸入:Angular 2/4 - 如何測試指令@Input值?
@Directive({
selector: '[my-directive]'
})
export class MyDirective {
@Input('some-input')
public someInput: string;
}
正如你看到的,輸入應該是一個string
值。現在,我想編寫一個測試這個指令,我想測試,如果輸入滿足string
類型:
describe('MyDirective',() => {
let fixture: ComponentFixture<DummyComponent>;
let dummy: DummyComponent;
let directive: DebugElement;
beforeEach(async(() => {
TestBed
.configureTestingModule({
imports: [
MyModule.forRoot()
],
declarations: [
DummyComponent
]
})
.compileComponents();
fixture = TestBed.createComponent(DummyComponent);
dummy = fixture.componentInstance;
directive = fixture.debugElement.query(By.directive(MyDirective));
fixture.detectChanges();
}));
it('should satisfy only a string input and error on other inputs',() => {
// How to test?
});
});
@Component({
selector: 'dummy',
template: `
<div my-directive [some-input]="'just-a-string-value'"></div>
`
})
export class DummyComponent implements OnInit {
}
我如何測試@Input
值(S)是否是正確的類型嗎?
這個[link](https://github.com/angular/angular-es/blob/master/public/docs/_examples/testing/ts/app/shared/highlight.directive.spec.ts)可能有幫助 –
指令應該是DebugElement [],只需要獲取這個屬性的typeof(directives [0] .attributes.someInput).toLowerCase()==「string」 – titusfx