0

我正在尝试使用 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 测试运行器中收到一个异常,指出在私有函数内部调用的方法不存在。(对象 # 没有方法 'methodName' )

我不关心私有函数的内部工作,我怎么能忽略那个调用?

我可以忽略它吗?显然我不能/不应该监视它,因为它是私人的。任何方向将不胜感激。

谢谢

4

1 回答 1

0

有两点,你不能测试从外部不可见的方法调用,只是因为它们不可见。而且你不应该测试你想要测试的对象的内部行为。

于 2013-04-11T09:03:44.490 回答