【发布时间】:2021-12-29 20:39:25
【问题描述】:
我对我的 .tsx 文件进行单元测试还很陌生,我目前在测试它时遇到了问题(抱歉,如果格式关闭)
//this is Banner.tsx
import React, {useCallback} from "react";
type Properties = {
close: () => void;
text: string;
const Banner: React.FC<Properties> = ({close, text}) => {
const onClick = useCallback(() => {
close();},
[close, text]);
return (
<div className = "BannerBox">
<div className = "banner">
<span className = "popup"> onClick={onClick}[x]
</span>
{text}
</div>
</div>
);
};
export default Banner;
//this is App.tsx
import Banner from "./Components/Banner";
function App(): JSX.Element {
const [isOpen, setIsOpen]=useState(false);
const toggleBanner = () => {
SetIsOpen(!isOpen);
};
return (
<div>
<input type = "button"
value = "popup"
onClick={toggleBanner}/>
<p>hi</p>
{isOpen && <Banner text = {"hello"} close={() => isOpen(false)}/>}
</div>
export default App;
这就是我目前所拥有的
//Banner.test.tsx
test("Check that all type Properties are being used", () => {
render(<Banner />);
})
它给出了这个错误->“type {} is missing the following properties from type Banner: close and text”
【问题讨论】:
-
您没有将
text和close属性传递给Banner组件。另外,你为什么在{onClick}中使用onClick函数,你不能渲染一个函数。如有错误请修改您的代码。 -
我修好了,你能给我一个测试的例子吗?
-
我不这么认为,你的代码还是有一些错误
-
我认为我现在修复了错误
标签: reactjs typescript unit-testing tsx