Reactjs 收到Jest测试错误:序列化为同一字符串
我尝试玩jest来学习如何测试react应用程序。Reactjs 收到Jest测试错误:序列化为同一字符串,reactjs,testing,jestjs,Reactjs,Testing,Jestjs,我尝试玩jest来学习如何测试react应用程序。 我已经创建了一个按钮,将只嵌入一些元素,以保持不变的风格 以下是我的按钮代码: export function searchBtn(triggerSearch) { return ( <div className="d-flex justify-content-center my-3"> <input type="submit" c
我已经创建了一个按钮,将只嵌入一些元素,以保持不变的风格 以下是我的按钮代码:
export function searchBtn(triggerSearch) {
return (
<div className="d-flex justify-content-center my-3">
<input
type="submit"
className="btn btn-primary w-25"
value="Search"
onClick={(e) => {
e.preventDefault();
triggerSearch();
}}
></input>
</div>
);
}
导出函数searchBtn(triggerSearch){
返回(
{
e、 预防默认值();
触发器搜索();
}}
>
);
}
这是我的测试:
const { searchBtn } = require("./SearchBtn");
test("going to try the btn", () => {
function triggerSearch() {}
expect(searchBtn(triggerSearch)).toEqual(
<div className="d-flex justify-content-center my-3">
<input
type="submit"
className="btn btn-primary w-25"
value="Search"
onClick={(e) => {
e.preventDefault();
triggerSearch();
}}
></input>
</div>
);
});
const{searchBtn}=require(“./searchBtn”);
测试(“准备尝试btn”,()=>{
函数triggerSearch(){}
expect(searchBtn(triggerSearch)).toEqual(
{
e、 预防默认值();
触发器搜索();
}}
>
);
});
我不知道为什么我总是遇到这样的错误:已接收:序列化为同一字符串
提前感谢您有两种解决方案:
const { searchBtn } = require('./SearchBtn');
describe('65737249', () => {
test('going to try the btn', () => {
function triggerSearch() {}
expect(JSON.stringify(searchBtn(triggerSearch))).toEqual(
JSON.stringify(
<div className="d-flex justify-content-center my-3">
<input
type="submit"
className="btn btn-primary w-25"
value="Search"
onClick={(e) => {
e.preventDefault();
triggerSearch();
}}
></input>
</div>
)
);
});
test('better', () => {
function triggerSearch() {}
expect(searchBtn(triggerSearch)).toMatchInlineSnapshot(`
<div
className="d-flex justify-content-center my-3"
>
<input
className="btn btn-primary w-25"
onClick={[Function]}
type="submit"
value="Search"
/>
</div>
`);
});
});
哦,所以你必须把它串起来:0,这样它才能被测试。非常感谢。
PASS examples/65737249/SearchBtn.test.jsx
65737249
✓ going to try the btn (3 ms)
✓ better (8 ms)
› 1 snapshot written.
Snapshot Summary
› 1 snapshot written from 1 test suite.
Test Suites: 1 passed, 1 total
Tests: 2 passed, 2 total
Snapshots: 1 written, 1 total
Time: 4.946 s