模拟-测试失败,无法找出问题

时间:2018-10-20 05:50:45

标签: reactjs jestjs react-test-renderer

我使用jest做了一个简单的测试,所有的工作都很好,期待一个问题。

是我的错误

expect(wrapper.find("textarea").prop("value")).toEqual("new comment");

fails.无法解决问题。有人帮我吗?

这是我的测试代码:

import React from "react";
import { mount } from "enzyme";
import CommentBox from "components/CommentBox";

let wrapper;

beforeEach(() => {
  wrapper = mount(<CommentBox />);
});

afterEach(() => {
  wrapper.unmount();
});

it("has a text area and button", () => {
  expect(wrapper.find("textarea").length).toEqual(1);
  expect(wrapper.find("button").length).toEqual(1);
});

describe("the text area", () => {
  beforeEach(() => {
    wrapper.find("textarea").simulate("change", {
      target: { value: "new comment" }
    });
    wrapper.update();
  });
  it("has a text area that users can type in ", () => {
    expect(wrapper.find("textarea").prop("value")).toEqual("new comment");
  });

  it("when form is submitted, text area gets emptied", () => {
    wrapper.find("form").simulate("submit");
    wrapper.update();
    expect(wrapper.find("textarea").prop("value")).toEqual("");
  });
});

Live Demo

1 个答案:

答案 0 :(得分:1)

您在组件中输入了错字

handleChange = event => {
  this.setState({ comment: event.target.vaue });
};

应该为value而不是vaue