gpt4 book ai didi

javascript - 单元测试私教课

转载 作者:数据小太阳 更新时间:2023-10-29 05:20:19 24 4
gpt4 key购买 nike

假设我在 JavaScript 中使用了以下模块类型模式:

var myModule = (function () {
var Foo = function () { /* ... */ };
var Bar = function () {
this.foo = new Foo();
};
Bar.prototype.someMethod = function () {
this.foo.someMethod();
};
return {
'Bar': Bar
};
})();

这是否可取,如果是的话——我如何公开 Foo 进行单元测试?是否有一些通用的技术或模式可以执行此操作?

最佳答案

我认为您真的不需要对 private 成员进行单元测试。只要你对公共(public)成员进行了全面的测试,私有(private)成员中的任何错误都会表现为公共(public)成员的错误。然后,您可以使用良好的调试来找出确切的问题所在。

或者,如果您的测试在单独的生产版本上运行,您可以公开封闭对象,并针对它进行测试。您需要记住在部署之前删除对封闭对象的引用——或者您可以以某种方式使其自动化。不过老实说,我通常不会费心删除它,除非您正在打包一个库供公众使用。

var myModule = (function () {
var _this = this;
var Foo = function () { /* ... */ };
var Bar = function () {
this.foo = new Foo();
};
Bar.prototype.someMethod = function () {
this.foo.someMethod();
};
return {
'Bar': Bar,
'__private__': _this
};
})();

function test_foo(obj) {
var foo = obj.__private__.Foo;
assert(foo.prop, 10)
}

对于内部系统,能够访问私有(private)数据/函数通常不是问题,如果清楚地理解访问私有(private)成员是不应该的。这通过提供对名称如 __private__ 的封闭对象的引用来突出显示。 (你能看出我有点喜欢 Python 吗?;))

关于javascript - 单元测试私教课,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com