2015-06-23 14 views
8

Bileşenimin işlendiğini doğrulayan basit bir Jest testi yazıyorum. React's TestUtils'in, render bileşenlerini sınıf veya etikete göre bulmalarına, ancak ID özniteliklerine göre işlevlerinin olmadığını görüyorum. Bir findAllInRenderedTree işlevi vardır, ancak belgeler, geri çağrının ne beklemesi gerektiğini açıklamıyor.Jest - Oluşturulmuş DOM bileşeni kimliğiyle nasıl bulunur?

Geriçağırımın normal bir DOM öğesi veya sıradan bir Reaktif bileşeni olmayan bir tür öğe nesnesi alacağını tahmin ediyorum. findAllInRenderedTree'un geri dönüşüne tam olarak ne geçiyor ve özniteliklerini veya en azından kimliğini nasıl alacağım?

Yalnızca geri bildirimin argümanları olan console.log olur, ancak Jest sınamasında çalışmak için konsol almakta zorlanıyorum.

cevap

7

findAllInRenderedTree geri arama bağımsız değişken bir bileşen somut nesnesi iletilir ve bileşen çıkış dizisinde tutulması gerektiğini gösteren bir boolean döndürmelidir. Eğer gerçek DOM Düğüm niteliklerini karşı test etmek gerekirse

function scryRenderedDOMComponentsWithId(tree, id) { 
    return TestUtils.findAllInRenderedTree(tree, function(inst) { 
    return TestUtils.isDOMComponent(inst) && inst.getAttribute("id") === id; 
    }); 
} 

, bir DOM Düğüm almak için React.findDOMNode(inst) kullanabilirsiniz:

Senin durumunda

, belirli bir kimliğe sahip tüm render DOM bileşenleri bulmak için verilen bileşen örneği.

+4

Bunu okuyun: http://stackoverflow.com/questions/32246645/how-to-check-props-of-a-dom-node-in-an-unit-test-in-react-0-14, Bundan sonra şu şekilde olmalıdır: 'return isDOMComponent (inst) && inst.getAttribute ('id') === id;' –