【发布时间】:2014-08-07 05:36:36
【问题描述】:
我想知道是否可以在 js 中测试原型的私有方法。我怀疑这是不可能的,但也许有人会让我感到惊讶......
例如,假设我有以下班级餐厅:
function Restaurant() {
}
Restaurant.prototype = (function() {
var private_stuff = function() {
// Private code here
};
return {
constructor:Restaurant,
use_restroom:function() {
private_stuff();
}
};
})();
是否可以为 private_stuff 方法编写单元测试?我使用 jasmine 进行单元测试,但我想这并不重要。
谢谢, 利奥
【问题讨论】:
-
通常单元测试只适用于公共方法。只要
use_restroom在所有情况下都是正确的,谁在乎private_stuff的工作原理? -
我不同意这一点。使用其他私有方法的公共方法可能很难用单元测试完全覆盖。有时你想覆盖私有方法。这就是为什么我们有像 powermock 这样的框架用于 java 单元测试的原因。
标签: javascript unit-testing prototype private