这个问题在这里已经有了答案:
Enzyme: simple .to.have not working
(1 个回答)
10 个月前关闭。
我有一个组件app.tsx
import React, { useState } from "react";
const TestCom = () => {
return(
<>
<div className="head">hey there</div>
<select name="xyz" id="uni">
<option value="abc">abc</option>
</select>
</>
)
}
export default TestCom
我正在用笑话和 enzyme 测试它app.test.tsx
import TestCom from "./foo";
import { shallow } from 'enzyme';
import React from "react";
test("basic test", () => {
const app= shallow(<TestCom />)
expect(app.find('div.head')).to.have.lengthOf(1);
});
每当我使用 .to 时抛出错误Property 'to' does not exist on type 'JestMatchersShape<Matchers<void, ShallowWrapper<HTMLAttributes,
any, Component<{}, {}, any>>>, Matchers<Promise<void>, ShallowWrapper<HTMLAttributes, any,
Component<...>>>>'.ts(2339)
我尝试过故障排除,但找不到修复方法
最佳答案
直到您添加 chai library ,没有.to.
方法。玩笑own matchers有 .toHaveLength()
您可以使用:
expect(app.find('div.head')).toHaveLength(1);
关于reactjs - React Typescript 面临 enzyme 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64477968/