作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我只是在个人项目上编写代码以供学习。
我有一个类定义如下:
import React from 'react';
export default class Counter{
counterValue = 0;
update(newValue){
this.counterValue = newValue;
}
getValue(){
return this.counterValue;
}
displayValue(){
return <div>{this.getValue()}</div>
}
}
我正在尝试在displayValue()
上创建一个测试功能。代码如下:
import React from "react";
import Counter from "./Counter";
import Adapter from "enzyme-adapter-react-16";
import { shallow, mount, render, configure } from "enzyme";
configure({ adapter: new Adapter() });
var c1 = new Counter();
c1.update(188);
describe("check displayValue() method", () => {
it("renders a div", () => {
const wrapper = shallow(c1.displayValue());
expect(wrapper.contains(<div>188</div>)).toBe(true);
});
});
我使用了命令npm test
并执行了“react-scripts 测试”。
测试失败。它告诉我,
expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
错误是由于这一行造成的:
expect(wrapper.contains(<div>188</div>)).toBe(true);
我很难理解这一点,希望得到建议。谢谢!
最佳答案
您需要将 {} 添加到号码中,如下所示:
import React from "react";
import Counter from "./Counter";
import Adapter from "enzyme-adapter-react-16";
import { shallow, mount, render, configure } from "enzyme";
configure({ adapter: new Adapter() });
var c1 = new Counter();
c1.update(188);
describe("check displayValue() method", () => {
it("renders a div", () => {
const wrapper = shallow(c1.displayValue());
expect(wrapper.contains(<div>{188}</div>)).toBe(true);
});
});
查看更多详情here
关于javascript - 使用 enzyme 进行浅层渲染 : actual and expected output does not match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59665918/
根据 redux 的文档,reducer 总是给出一个新的状态副本。在连接的组件中,react-redux 对 mapStateToProps(旧与新 props)中提到的属性进行浅层比较。 我的困惑
我是一名优秀的程序员,十分优秀!