Допустим, у нас есть компонент
import React, { Component } from "react";
import $ from "jquery";
class App extends Component {
componentDidMount() {
$('#empty_p_tag').text('hello')
}
render() {
return (
<div>
<p>This is a component</p>
<p id ="empty_p_tag"></p>
</div>)
}
}
export default App;
, и мы хотим проверить, что тег p с идентификатором empty_p_tag
теперь говорит "привет" в теге. Как это сделать с ферментом и шуткой?
it('should render hello', function () {
const app_wrapper = mount(<App/>);
const p_tag = app_wrapper.find('#empty_p_tag').text();
expect(p_tag).toBe('hello');
});
При запуске этого теста я получаю ответ:
expect(received).toBe(expected) // Object.is equality
Expected: "hello"
Received: ""
4 | const app_wrapper = mount(<App/>);
5 | const p_tag = app_wrapper.find('#empty_p_tag').text();
> 6 | expect(p_tag).toBe('hello');
| ^
7 |
8 | });
Я не уверен, где я ошибаюсь? Должен ли я хранить элемент p_tag в разделе props and states конструктора? Кроме того, я стараюсь избегать использования mount, но когда я бегаю с мелководьем, это не нравится.
Спасибо за вашу помощь