2011-05-06 21 views
10

QUnit, bir istisnanın atılıp atılmadığını sınamak için "yükseltme" iddiasını sağlar. Yine de istisna tarafından atılan asıl mesajı test etmenin bir yolu var mı? Örneğin, ben bu işlevi olduğunu varsayalım:qunit - test istisnası mesajı?

throwError = function(arg) { 
    var err = new Error(); 
    if (typeof arg === 'undefined') { 
    err.message = 'missing parameter'; 
    throw err; 
    } 
} 
Ben bu satırlar boyunca bir şey yazabilmek istiyorum

: istisna mesaj "eksik olduğundan

raises(
    function(){throwError();}, 
    Error.message, 
    'missing arg' 
); 

İdeal olarak, bu test başarısız olur parametresi "ve" eksik arg "olmasını beklerim, ancak qunit yalnızca bir hata oluştuğunu kontrol ettiğinden geçer. Atılan istisnanın gerçek içeriğini kontrol etmek için herhangi bir yolu?

+0

en QUnit değil mi (http://api.qunitjs.com/throws/) bunu yaparken [atar] Bu fonksiyon göz önüne alındığında? –

+0

_throws_ çalışması, ancak, bir nedenle, istisna mesajını doğrulamıyor. –

cevap

18

Cevabınızı çözdüm, başkalarının yararlı bulması durumunda burada mesaj gönderdim.

throwError = function(arg) { 
    var err = new Error(); 
    if (typeof arg === 'undefined') { 
    err.message = 'missing parameter'; 
    throw err; 
    } 
} 

testi şu şekilde görünecektir:

raises(
    function(){ 
    throwError(); 
    }, 
    function(err) { 
    return err.message === 'missing arg'; 
    }, 
    'optional - label for output here' 
); 
+0

evet, bir çekicilik gibi çalışır! – ducin

+0

Evet, bunu bağımsız olarak buldum - söyleyebildiğim kadar belgesiz bir özellik –

İlgili konular