В псевдокоде я думаю, что ваш тест будет выглядеть следующим образом:
// in setUp, grab a reference to your desired view controllers & buttons
// in the test method:
// press a tab (or whatever it takes) to navigate to the Results view
// press the button for the first result (using target/action or however you have it set up)
STAssertTrue([myNavigationController.visibleViewController isKindOfClass:[DetailViewController class]]);
STAssertTrue([(DetailViewController *)myNavigationController.visibleViewController result] == /*first result from earlier*/);
// in tearDown, do cleanup if necessary
Если этого недостаточно, вы должны опубликовать часть своего кода, чтобы мы могли легче помочь.
Редактировать: Дополнительная информация о setUp
.Я думаю, что стоит взглянуть на реализацию из примера кода, с которым вы связались:
- (void) setUp {
app_delegate = [[UIApplication sharedApplication] delegate];
calc_view_controller = app_delegate.calcViewController;
calc_view = calc_view_controller.view;
}
app_delegate
, calc_view_controller
и calc_view
являются переменными экземпляра класса CalcApplicationTests
, поэтому они могутиспользоваться из любого -test...
метода.Делегат приложения, по своей природе являющийся контроллером для приложения, имеет ссылку на контроллер основного представления.Я думаю, что это довольно простой и разумный способ сделать это.