本文整理汇总了TypeScript中@testing/utils.TestStore类的典型用法代码示例。如果您正苦于以下问题:TypeScript TestStore类的具体用法?TypeScript TestStore怎么用?TypeScript TestStore使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了TestStore类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: inject
inject([Store], (testStore: TestStore<TodosState>) => {
store = testStore;
store.setState({ items: [], filter: 'ALL' });
fixture = TestBed.createComponent(TodosComponent);
component = fixture.componentInstance;
fixture.detectChanges();
})
示例2: describe
describe('TodosComponent', () => {
let component: TodosComponent;
let fixture: ComponentFixture<TodosComponent>;
let store: TestStore<TodosState>;
let dispatchSpy;
const getTodos = () => fixture.debugElement.queryAll(By.css('.todo'));
const getBigInput = () =>
fixture.debugElement.query(By.css('anms-big-input'));
const getBigInputValue = () =>
getBigInput().query(By.css('input')).nativeElement.value;
const getTodosFilter = () =>
fixture.debugElement.query(By.css('.todos-filter'));
const getTodosFilterOptions = () =>
fixture.debugElement.queryAll(
By.css('.todos-filter-menu-overlay .mat-menu-item')
);
const deleteDoneTodosBtn = () =>
fixture.debugElement.query(
By.css('anms-big-input-action[fontIcon="fa-trash"] > button')
);
const addTodoBtn = () =>
fixture.debugElement.query(
By.css('anms-big-input-action[fontIcon="fa-plus"] > button')
);
beforeEach(
async(() => {
TestBed.configureTestingModule({
declarations: [TodosComponent],
imports: [NoopAnimationsModule, SharedModule],
providers: [{ provide: Store, useClass: TestStore }]
}).compileComponents();
})
);
beforeEach(
inject([Store], (testStore: TestStore<TodosState>) => {
store = testStore;
store.setState({ items: [], filter: 'ALL' });
fixture = TestBed.createComponent(TodosComponent);
component = fixture.componentInstance;
fixture.detectChanges();
})
);
it('should be created with 0 todos', () => {
expect(component).toBeTruthy();
expect(component.todos.items.length).toBe(0);
expect(getTodos().length).toBe(0);
});
it('should display todos', () => {
store.setState({
items: [{ id: '1', name: 'test', done: false }],
filter: 'ALL'
});
fixture.detectChanges();
expect(getTodos().length).toBe(1);
expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test');
});
it('should filter and show "DONE" todos', () => {
store.setState({
items: [
{ id: '1', name: 'test 1', done: true },
{ id: '2', name: 'test 2', done: false }
],
filter: 'DONE'
});
fixture.detectChanges();
expect(getTodos().length).toBe(1);
expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test 1');
});
it('should dispatch remove "DONE" todos action', () => {
store.setState({
items: [
{ id: '1', name: 'test 1', done: true },
{ id: '2', name: 'test 2', done: false }
],
filter: 'DONE'
});
fixture.detectChanges();
dispatchSpy = spyOn(store, 'dispatch');
deleteDoneTodosBtn().triggerEventHandler('click', {});
fixture.detectChanges();
expect(dispatchSpy).toHaveBeenCalledTimes(1);
expect(dispatchSpy).toHaveBeenCalledWith(new ActionTodosRemoveDone());
});
it('should dispatch add todo action', () => {
//.........这里部分代码省略.........
示例3: it
it('should display todos', () => {
store.setState({
items: [{ id: '1', name: 'test', done: false }],
filter: 'ALL'
});
fixture.detectChanges();
expect(getTodos().length).toBe(1);
expect(getTodos()[0].nativeElement.textContent.trim()).toBe('test');
});
示例4: ActionTodosToggle
it('should dispatch toggle todo action', () => {
store.setState({
items: [{ id: '1', name: 'test 1', done: true }],
filter: 'ALL'
});
fixture.detectChanges();
dispatchSpy = spyOn(store, 'dispatch');
getTodos()[0]
.query(By.css('.todo-label'))
.triggerEventHandler('click', {});
fixture.detectChanges();
expect(dispatchSpy).toHaveBeenCalledTimes(1);
expect(dispatchSpy).toHaveBeenCalledWith(
new ActionTodosToggle({ id: '1' })
);
});