2016-03-01 9 views
0

Я постоянно получаю эту ошибку при тестировании среагировать компонента:Ошибка при тестировании компонента React с помощью Жасмин

Error: Invariant Violation: findComponentRoot(..., .0): Unable to find element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID ``.

код я использовал для теста:

describe(`Method: flattenData`,() => { 

    const tests = [ 
    { 
     toFlatten: { 
     'key1': 'k', 
     'key2': 'n', 
     'key3': 'o' 
     }, 
     expectedResult: 'key1: k; key2: n; key3: o' 
    } 
    ]; 

    tests.forEach((test) => { 

    expect(instance.flattenData(test.toFlatten)).toEqual(test.expectedResult); 

    }); 

}); 
+0

Можете ли вы предоставить более подробную информацию о 'instance' переменная, на которую вы ссылаетесь? Происходит ли ошибка при вызове 'instance.flattenData' или при создании экземпляра вашего компонента? –

+0

Я нашел исправление, я не представил больше данных об экземпляре по ошибке и экземпляре. flattenData в данном случае не имеет значения. Th в любом случае. –

ответ

0

Я исправил эту ошибку, добавив параметр в вызов рендеринга. Это заставляет компонент (который является только <td> </td> быть вынесено внутри таблицы

Перед:.

[container, instance] = render(TableCell, { 
    data: `content`, 
    dataTh: `content`, 
    key: `content`, 
    dataLocator: `content` 
}); 

С исправлением:

[container, instance] = render(TableCell, { 
    data: `content`, 
    dataTh: `content`, 
    key: `content`, 
    dataLocator: `content` 
}, `table`); 
Смежные вопросы