2016-12-29 34 views
3

我有一個對象和一些變量,當前正在我寫的每個單獨的測試中聲明(根本不幹)。我想要做的是在模塊的setup方法中創建這個對象和變量,以便所有的測試都可以訪問對象和變量。如何使用qUnit的設置方法創建一個可用於模塊內所有測試的對象/變量?

這是我目前如何嘗試這樣的:

QUnit.module("Main Function Test", { 

     setup: function() { 

      this.controls = { 
        validCharacters : /^[0-9a-zA-Z]+$/ 
        , 
        searchResultTable : { 
         setVisible : setVisible 
        }, 
        commentBoxContainer: { 
         setVisible : setVisible 
        } 
       }; 

      var getValue = sinon.stub().returns(false); 
      var setEnabled = sinon.spy(); 
     }, 
    }); 

QUnit.test("someTest that should have access to the above 'controls' object and variables" ... 

當我運行我的測試中,他們失敗,因爲控制對象是不確定的,或者無法找到變量(或的getValue的setEnabled)。

有人可以分享我做錯了什麼嗎?或者使對象和變量可用於相應模塊中的所有測試的正確方法?

回答

0

我敢肯定,隨着QUnit你就得才能訪問它在測試中聲明模塊設置功能之外的數據變量...

// IIFE to contain variables in scope of this file... 
(function() { 

    // variables to use across tests 
    var controls; 
    var getValue; 
    var setEnabled; 

    QUnit.module("Main Function Test", { 
    setup: function() { 

     // assign the controls value (declared above) 
     controls = { 
     validCharacters : /^[0-9a-zA-Z]+$/, 
     searchResultTable : { 
      setVisible : setVisible 
     }, 
     commentBoxContainer: { 
      setVisible : setVisible 
     } 
     }; 

     getValue = sinon.stub().returns(false); 
     setEnabled = sinon.spy(); 
    } 
    }); 

    QUnit.test("someTest" ...); 

    QUnit.test("someOtherTest" ...); 

})(); 
相關問題