2017-04-05 80 views
0

任何人都可以給我一個關於如何在QUnit中測試以下代碼的指針嗎?Sweetalert2和Qunit.js

function ChooseBranch() 
{ 
var BranchPromise = getBranches(); 
BranchPromise.then(function (BranchData) { 
    var BranchOptions = []; 
    $.each(BranchData, function (i, d) { 
     BranchOptions.push(d.BranchDescription) 
    }); 

    swal({ 
     title: 'Delivery Branch', 
     text: 'Please choose the branch below where the customer would like the order delivered', 
     showCancelButton: false, 
     input: 'select', 
     inputOptions: BranchOptions 
    }).then(function (result) { 
     DeliveryType = "Other"; 
     DeliverToBranch = BranchData[result].BranchCode; 
     ItemOrder(); 
    }); 
}); 

}

我試圖得到sweetalert2對話框中選擇第一個選項,但它不會出現在DOM中,直到測試失敗後?我基本上想測試swal是可見的。

回答

2

看起來你正在尋找QUnit的異步API:https://api.qunitjs.com/assert/async

ChooseBranch似乎是異步的。如果您希望能夠測試該功能,則需要在該異步調用中提供某種掛鉤。在這個例子中相當簡單,只需從ChooseBranch函數返回BranchPromise即可。

已經這樣做了,你應該能夠寫一個qunit測試,如:

Qunit.test('ChooseBranch', function(assert) { 
    var done = assert.async(); 
    var promise = ChooseBranch(); 
    promise.then(function() { 
     // Test that the sweetalert2 dialog was displayed 
     done(); 
    }); 
}); 
+0

謝謝,已經把它清楚我的頭!我已將警報的顯示轉移到其自己的功能中,然後我可以測試它是否可見。 – dave

相關問題