Обычными критериями для тестирования белого ящика являются путь выполнения и сенсибилизация структуры данных. Их иногда называют «тестирование филиалов», «тестирование путей», «тестирование потока данных». См. Википедию о тестировании белого ящика.
То есть, unit-test относится к уровню, на котором тест проходит в структуре системы, тогда как тестирование белого и черного ячеек относится к тому, на любом уровне подход к тестированию основан на внутреннем дизайне или только на внешней спецификации устройства.
Итак, если ваш блок-тест сенсибилизирует все пути выполнения и структуры данных в блоке, которые вы тестируют, то это тест с белым ящиком. Однако, если ваш блок не может сенсибилизировать большинство путей и структур данных устройства, он не может претендовать на звание «белого ящика».
Следует иметь в виду, что в некоторых организациях вызывается модульное тестирование white-box, независимо от того, основан ли блок-тест на дизайне устройства, а не на его API. Лучше не спорить с вашим боссом по этому вопросу.
Не поддерживают все ориентации в файле plist приложения, только те, которые поддерживает ваш контроллер корневого представления.
В iOS 6 изменяется авторотация. В iOS 6 метод shouldAutorotateToInterfaceOrientation:
UIViewController устарел. Вместо этого вы должны использовать методы supportedInterfaceOrientationsForWindow:
и shouldAutorotate
:
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAllButUpsideDown;
}
Модальные ViewControllers больше не получают вызовы ротации в iOS 6: методы willRotateToInterfaceOrientation:duration:,
willAnimateRotationToInterfaceOrientation:duration:,
и didRotateFromInterfaceOrientation:
больше не вызывается ни одним контроллером представления, который создает полноэкранное представление поверх себя, например, те, которые вызываются с помощью: presentViewController:animated:completion:
.
Вы можете позволить контроллеру представления, который представляет ваш модальный контроллер представления, сообщать ему о вращении. Кроме того, теперь вы используете: presentViewController:animated:completion:
для представления контроллера вида. presentModalViewController:animated:
устарело, что вы используете в коде.
Создайте категорию, создав подкласс UINavigationController, и реализуйте следующие методы в файле .h
-(BOOL)shouldAutorotate;
-(NSUInteger)supportedInterfaceOrientations;
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation;
in .m file
-(BOOL)shouldAutorotate
{
return [self.topViewController shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [self.topViewController preferredInterfaceOrientationForPresentation];
}
и реализуйте следующие методы в классе контроллера представления, класс u, который вы хотите включить вращение
-(NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown);
}
- (BOOL)shouldAutorotate
{
return YES;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeLeft;
}