本文整理匯總了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' })
);
});