2013-04-10 2 views
0

Я пытаюсь проверить функцию, аналогичную той, ниже с помощью ЖасминЧастные методы, вызывающие испытания жасмин на провал

closure.respond = function (value){ 
if(value) 
{ 
    thisIsAPrivateMethod(); 

} 
thisIsAPublicMethod(); 

} 

Мой тест выглядит так

it('will display the calendar widget when value is true', function(){ 

    value=true 
    closure.respond(value); 
    expect(closure.thisIsAPublicMethod).toHaveBeenCalled(); 
) 

}) 

Всякий раз, когда я запускаю тест I получить исключение в тестовом бегуне жасмина, который утверждает, что метод, который вызывается внутри частной функции, не существует. (Объект # не имеет метода 'methodName' )

Я не занимаюсь внутренней обработкой частной функции, как я могу просто игнорировать этот вызов?

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

Благодаря

ответ

0

Есть две точки, вы наклоненная тестовый вызов на Methode, которые не видны снаружи, только потому, что они не видны. И вы не должны проверять внутреннее поведение вашего объекта, который хотите проверить.

+0

Согласен. Моя проблема заключается в том, что при тестировании clos.respond внутри он вызывает частный метод, который затем выдает ошибку из-за того, что у него есть зависимость, которая не была объявлена. Как далеко от стека вызовов мне нужно идти? – autofunk

+0

Не уверен, что я понимаю проблему, но почему у вас есть необъявленная зависимость. Вы должны высмеивать/заглушать зависимость и вводить ее в свое закрытие. Или если его глобальный просто издевается над этим как «jasmine.spy (window,« dependency ») иReturn (someMockImplenetaion)' –

+0

Проблема заключалась в том, что я пытался не заниматься реализацией в частной функции, для того чтобы получить эту работу теста, мне нужно знать, что делает частная функция, когда она выполняется во время теста, моя озабоченность связана с количеством зависимостей, которые кажутся кажущимися дальше по цепочке звонков. Я доберусь туда в конце концов. Спасибо за понимание. – autofunk

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