Он является на основе None id
, но None является одним из нескольких объектов Python, которые определены как глобальные переменные C, поэтому его адрес (обычно) не изменяется между прогонами Python. Другие такие объекты: True
и False
(но они хэшированы как int) или встроенные классы, такие как object
и tuple
.
Адрес (и хэш) отличается от однако, разные сборки CPython. В моей системе hash(None)
выдает 539708.
Обычно я экспортирую как подключенный компонент для использования в приложении, так и сам компонент для тестирования.
Похоже, у вас есть небольшая опечатка, передайте { target: { value: 2 } }
как ваше событие.
Вот рабочий пример на основе предоставленного вами кода:
import * as React from 'react';
import { shallow } from 'enzyme';
class DeleteOne extends React.Component {
handleChange = e => {
this.setState({
num: e.target.value
});
};
render() {
return (
<div>
<h2>Delete cat :(</h2>
<input
onChange={this.handleChange}
type="number"
placeholder="enter id here"
/>
<button id="deleteBtn" onClick={this.deleteOne}>
Delete
</button>
</div>
);
}
}
it("Updates the state", () => {
const wrapper = shallow(<DeleteOne />);
const input = wrapper.find("input");
input.simulate("change", { target: { value: 2 } }); // 'value' instead of 'num'
expect(wrapper.state().num).toEqual(2); // SUCCESS
});