2010-02-09 51 views
5

Tôi đang sử dụng QUnit, tuyệt vời.Thử nghiệm đơn vị thử nghiệm Javascript Sandbox

Tôi đã đính kèm ứng dụng JS của mình vào hộp cát (function() {})();. Điều này ẩn rất nhiều mã mà tôi không muốn công khai, nhưng tôi cũng cần phải kiểm tra mã đó.

Dưới đây là một ví dụ về cách làm việc này:

(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. 
    } 

})(); 

Vì vậy, ở đây tôi có thể dễ dàng kiểm tra đơn vị PublicAPI.publicFunction, nhưng làm thế nào sẽ tôi thử nghiệm PrivateAPI.privateFunction?

Trả lời

3

This similar question tổng hợp nó khá tốt ... Cách dễ nhất là không xử lý các phương thức riêng vì chúng có thể thay đổi nếu chúng muốn ... Phương pháp công khai là những phương pháp cần thử nghiệm. Nếu bạn muốn kiểm tra các chức năng nội bộ của bạn, bạn cần phải để lại một cái móc nào đó để qunit có thể tìm thấy.

1

Bạn không thể. Không có cách nào để truy cập nó từ bên ngoài phạm vi đó. Hy vọng duy nhất của bạn là tích hợp kiểm tra nó, tức là các hàm thử nghiệm trên đối tượng có sẵn trên toàn cầu đang sử dụng các hàm nội bộ của bạn.

Tốt hơn: không tạo các chức năng riêng tư. Thỏa thuận lớn là gì?

Các vấn đề liên quan