Я действительно новичок в тестировании.Я настроил TedBed.Теперь я пытаюсь протестировать мой первый компонент "MyApp", который выглядит следующим образом:
@Component({
templateUrl: 'app.html'
})
export class MyApp implements OnInit {
rootPage:any = HomePage;
constructor(
private app:App,
) {
}
pageTwo() {
let navs = this.app.getActiveNavs();
let nav = navs[0]
nav.push(AnotherPage);
}
ngOnInit() {
}
}
Шаблон:
<ion-menu [content]="content" persistent="true">
<ion-header>
<ion-navbar>
<ion-title>
MyApp
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<button menuClose (click)="pageTwo()" ion-item>
<ion-label>
AnotherPage
</ion-label>
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
Как вы видите, у меня есть метод, который можно перейти к "AnotherPage ", если нажата кнопка меню.Это работает - теперь я пытаюсь проверить это поведение:
describe('MyApp Component', () => {
let fixture;
let component;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [MyApp],
imports: [
IonicModule.forRoot(MyApp),
],
providers: [
{provide: NavController, useFactory: () => NavControllerMock.instance()},
{provide: App, useFactory: () => AppMock.instance()},
]
})
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyApp);
fixture.detectChanges();
component = fixture.componentInstance;
});
it('should be created', () => {
expect(component instanceof MyApp).toBe(true);
});
it('should navigate to Antoherpage if pageTwo() is called', () => {
component.pageTwo()
// ...
});
});
Я понятия не имею, что мне нужно сделать, чтобы проверить, передается ли "AnotherPage" в Navstack после вызова метода "pageTwo".
Заранее спасибо