簡體   English   中英

單元測試Javascript匿名函數

[英]Unit testing Javascript anonymous functions

我的應用程序中的$ scope函數內部有一些匿名函數。 這些是匿名的,因為我只需要它們在頁面加載時立即運行一次(它們確實這樣做)。 在這些匿名函數內部,我將$scope.itemSuccess變量設置為true並返回; 當滿足某些規格時(不重要)。 這些匿名函數還會增加一個$scope.counter;

我不確定如何在茉莉花單元測試中定位這些匿名函數。 我需要確保它們正確執行了邏輯,並且適當地增加了計數器。

首先,您需要以某種方式訪問​​測試中的匿名函數,因此必須將其分配給變量或命名它們。

完成此操作后,要測試它們,您有兩個選擇:將測試放在閉包(您的主函數)本身中,或者將代碼添加到引用您要測試的函數的閉包中。

不幸的是,由於明顯的原因,第一個選項並不理想,第二個選項使您的API膨脹。 但是,正如Philip Walton在其博客文章中出色地解釋的那樣,您可以通過在API中顯式調用測試,然后將其刪除作為構建過程的一部分來使用選項二。

Philip在他的帖子中詳細介紹了很多細節,我建議您閱讀,但以下是一個快速入門指南:

   function closure(){

        // public variables here
        var publicVariable1 = 1;
        var publicVariable2 = 2;

        return {
            publicVariable1 : publicVariable1,
            publicVariable2 : publicVariable2,
            __tests__: {
                add: add,
                subtract: subtract
                }
        };

        // private methods you do not wish to expose (but must for unit testing purposes).      
        function add(a,b){
            return a + b;
        };

        function subtract(a,b){
            return a - b;
        }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM