如何在jquery插件中对私有方法进行单元测试?

Nik*_*ita 13 javascript jquery unit-testing jquery-plugins

也许这是一个新手JQuery问题但是:

  • 正确的jquery插件写在一个闭包内
  • 因此,只能从外部访问定义插件接口的方法
  • 有时(或多次)可能需要帮助方法,因为它们作为插件接口的一部分公开是没有意义的(例如因为它们改变了内部状态).
  • 那些如何进行单元测试?

例如,看看blockUI插件,方法如何安装,删除,重置获得单元测试?

要在Java中绘制并行,我会:

  1. 创建一个仅包含公共方法的BlockUI接口(根据定义)
  2. 创建一个实现上述接口的BlockUIImpl类.此类将包含install(),remove(),reset()方法,这些方法可以是公共的,或(包)受保护的

所以,我会对Impl进行单元测试,但客户端程序员会通过BlockUI接口与插件进行交互.

Jan*_*nen 13

这同样适用于任何其他语言和测试私有:要测试私有方法,您应该通过公共接口来练习它们.换句话说,通过调用您的公共方法,私有方法在该过程中进行测试,因为公共方法依赖于私有方法.

通常,私有方法不会与公共接口分开测试 - 整个问题是它们是实现细节,测试通常不应该对实现的细节有太多了解.