2013-07-01 1 views
0

Я пытаюсь JASidePanels с киви, и получил следующее сообщение об ошибке:Тестовое JASidePanels с киви

failed: 'Root side panel controller, wants to show left panel, shows left panel' [FAILED], expected subject to equal 2, got 1

Я думаю, что я должен сделал некоторые очевидные ошибки, но не мог понять, где. Может ли кто-нибудь дать мне несколько намеков? Заранее спасибо.

#import "Kiwi.h" 
#import "JASidePanelController.h" 
#import "UIViewController+JASidePanel.h" 

SPEC_BEGIN(MSISidePanelControllerSpec) 

describe(@"Root side panel controller", ^{ 

    __block JASidePanelController *sidePanelController; 

    beforeEach(^{ 
     sidePanelController = [[JASidePanelController alloc] init]; 
    }); 

    context(@"wants to show left panel", ^{ 

     beforeEach(^{ 
      [sidePanelController showLeftPanelAnimated:YES]; 
     }); 

     it(@"shows left panel", ^{ 
      [[theValue(sidePanelController.state) should] equal:theValue(JASidePanelLeftVisible)]; 
     }); 
    }); 
}); 

SPEC_END 

ответ

2

Проблема заключается в том, что ваш код установки (инициализации sidePanelController и отправки showLeftPanelAnimated:) не находятся внутри блоков в рамках beforeEach или аналогичные функции. См. this answer to a similar Kiwi question.

+0

Спасибо @esker, не могли бы вы взглянуть на обновленный код? Получение такой же ошибки. – ThinkChris

+0

Обновленный код выглядит хорошо, это правильный способ использования Kiwi. Проблема может быть связана с отображением левой панели с анимированным = YES. Возможно, когда animated = YES, 'sitePanelController.state' не сразу устанавливается на' JASidePanelLeftVisible', но только делает это асинхронно после завершения анимации? Вы можете попробовать две вещи: попробуйте 'showLeftPanelAnimated: NO', но оставим это ожидание в блоке' it'. Или оставьте animated = YES и измените ожидание на '[[expectFutureValue (theValue (sidePanelController.state)) shouldEventually] equal: ...]'. –

 Смежные вопросы

  • Нет связанных вопросов^_^