Я использую раскадровки и RubyMotion. В моей спецификации у меня есть следующее:
describe "SignUp scene" do
tests SignUpFacebook, :storyboard => 'LoginStoryboard', :id => 'SignUp'
it "some test" do
tap 'FirstName'
# some test here
end
end
В контроллере представления у меня есть
class SignUpFacebook < UIViewController
def viewWillAppear animated
super
self.navigationController.setNavigationBarHidden (true, animated:false)
end
def viewWillDisappear animated
super
self.navigationController.setNavigationBarHidden (false, animated:false)
end
#some code to be tested
end
когда я "рейкую спецификацию", я получаю сообщение об ошибке:
[ERROR: NoMethodError - undefined method `setNavigationBarHidden' for nil:NilClass]
Итак, navigationController равен нулю. Я что-то пропустил? В качестве альтернативы, может ли кто-нибудь предложить подход для тестирования контроллеров представления, которые ссылаются на контроллер навигации? Кроме того, для проверки того, что контроллер хочет выполнить переход в определенных условиях. Есть ли какой-то макет или заглушка, которую я мог бы использовать?
tests
создает новый UIWindow и устанавливает в нем корневой контроллер представления в качестве тестируемого контроллера представления. Кроме того, если вы скрываете панель навигации, почему она там? Вместо этого можно использовать модальную модель представления.self.presentViewController(@sign_up_facebook_controller, animated:true, completion:nil)
- person FluffyJack   schedule 07.12.2013