我正在尝试使用Jasmine测试类似于下面的函数
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();
)
})
每当我运行测试时,我在jasmine测试运行器中得到一个异常,该异常表明在private函数内调用的方法不存在。 (对象#没有方法'methodName' )
我不关心私有函数的内部工作原理,我怎么能忽略那个调用呢?
我可以忽略它吗?显然我不能/不应该监视它,因为它是私人的。 任何方向都将不胜感激。
由于
答案 0 :(得分:0)
有两点,你不能测试从外面看不到的方法,只是因为它们不可见。而且你不应该测试你想要测试的对象的内部行为。