Я хочу проверить, правильно ли загружено изображение в приложении React. Я решил проверить атрибут src
элемента img
, вложенного в компонент React. Я хочу использовать платформу тестирования Jest и, при необходимости, утилиту Enzyme для тестирования.Как получить атрибут элемента, вложенного в компонент React, используя Jest и/или Enzyme?
Выкапывая через Object.keys
неглубокий компонент тестирования реактивов, я смог придумать следующее решение. Строка, о которой я не знаю, обозначается звездочками.
import React from 'react';
import {shallow} from 'enzyme';
import App from './App';
it('should have the logo image',() => {
const app = shallow(<App />);
const img = app.find('img');
const src = img.node.props.src; // ******
expect(src).toBe('logo.svg');
});
Это решение делает работы, но это кажется немного запутанным (это требует свойства собственности свойства обертки) и, кажется, несколько неясных (я не могу легко найти четкие инструкции для этого в Интернете). Итак, это правильный/самый простой способ сделать это?
- Если да, то где документация?
- Если нет, то как иначе я должен/должен был это делать? например Есть ли готовый метод
getAttribute
илиretrieveProp
и т. Д. В ферменте? Есть ли лучший способ сделать это, используя что-то другое вместо Enzyme, например.react-addons-test-utils
?
This question о Реагировать атрибуты элемента, кажется, не вполне отвечают его для меня, даже если плакат там также указывает на то трудное время найти документацию о заявляющая вынесенное значение атрибута. Ряд других вопросов (например, here, here и here) касаются React/Jest/Enzyme, но не занимаются извлечением значений атрибутов.
Аксессуар Enzyme '.prop' не проверяет испущенный HTML. Он просто гарантирует, что опору подавали в тестируемый компонент. 'getDOMNode(). getAttribute' - это то, что вам нужно. – Tom