[英]Javascript Sandbox unit testing
我正在使用QUnit,這非常棒。
我把我的JS應用程序包含在(function () {})();
沙箱。 這隱藏了許多我不想公開的代碼,但我還需要測試該代碼。
以下是一個如何工作的示例:
(function () {
var PublicAPI = window.PublicAPI = {};
PublicAPI.publicFunction = function (foo) {
PrivateAPI.privateFunction(foo);
return 'bar';
};
var PrivateAPI = {};
PrivateAPI.privateFunction: function (foo) {
// Make secret stuff that never gets returned to the public
// Could be an AJAX call.
}
})();
所以在這里我可以輕松地對PublicAPI.publicFunction
單元測試,但是我如何測試PrivateAPI.privateFunction
?
這個類似的問題很好地總結了......最簡單的是不處理私有方法,因為他們可以根據需要改變...公共方法是需要測試的方法。 如果你想測試你的內部函數,你需要留下某種鈎子以便qunit能夠找到。
你不能。 無法從該范圍之外訪問它。 您唯一的希望是對它進行集成測試,即在使用內部函數的全局可用對象上測試函數。
更好的是:不要做私人活動。 有什么大不了的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.