2015-04-15 31 views
11

hatalarına neden olacak uyarılarım var mochamocha ile React bileşenlerini test etmek için kullanıyorum. PropTypes eşleşmediğinde bazı uyarılarım var. Ancak, bu uyarıların teste girip düzeltmek için gerçek bir hataya neden olması gerçekten ilginç olacaktır.Karma ve React,

Bunun nasıl başarılacağını biliyor musunuz?

cevap

15

console.warn yöntemini kendi başınıza değiştirebilir ve sağlanan ileti belirli bir desenle eşleştiğinde atabilirsiniz. Kabul cevaba

let warn = console.warn; 
console.warn = function(warning) { 
    if (/(Invalid prop|Failed propType)/.test(warning)) { 
    throw new Error(warning); 
    } 
    warn.apply(console, arguments); 
}; 
+1

harika bir çözüm, ancak bu işlevi ile reaksiyona girmek için 'console.error' kullanmak zorunda kaldım 0.14 –

+0

Bu iyi. Ancak tepki yalnızca uyarıya neden olacak her testi göstermediğinde sadece bir kez uyarıldığı için uyarılır, sadece ilk. Bu, başarısız bir test yaptırmanız, düzeltmeniz ve bir sonrakinin başarısız olmanız anlamına gelir. Her seferinde uyarıda bulunmak için Reaktiv'i uyarmanın bir yolu olsaydı, bu harika olurdu. –

+0

Bir hata atmak yerine 'console.error (warning)' yi kullanmayı deneyebilirsiniz. –

5

Küçük iyileştirmeler: console.error yerine söz spain-train olarak console.warn, ancak o zaman o 15.3.1 tepki ile çalışır gibi regex için 'Başarısız prop tipi' eklendi ve kod daha sıkı eslint dostu yaptı.

const error = console.error; 
console.error = function(warning, ...args) { 
    if (/(Invalid prop|Failed prop type)/.test(warning)) { 
    throw new Error(warning); 
    } 
    error.apply(console, [warning, ...args]); 
};