Reactjs 如何在setState回调参数中测试所有这些逻辑
我正在尝试测试以下代码。我正在使用jest和react测试库。这是我第一次用这种状态。我解决了我的初始问题,这是为了避免传递当前状态的依赖关系,但我不确定如何测试它。有人能给我建议吗Reactjs 如何在setState回调参数中测试所有这些逻辑,reactjs,jestjs,react-testing-library,Reactjs,Jestjs,React Testing Library,我正在尝试测试以下代码。我正在使用jest和react测试库。这是我第一次用这种状态。我解决了我的初始问题,这是为了避免传递当前状态的依赖关系,但我不确定如何测试它。有人能给我建议吗 useEffect(() => { setUsers(currentUsers => { if(currentUsers === undefined) { return userDataFromApi; } else {
useEffect(() => {
setUsers(currentUsers => {
if(currentUsers === undefined) {
return userDataFromApi;
} else {
//Users already exist in state
const mergedUserData = currentUsers.map(existingUser => {
const matchedUser = userDataFromApi.find(user => user.name === existingUser.name);
if (matchedUser) {
existingUser.stats = user.stats;
}
return existingUser;
});
return mergedUserData;
}
});
}, [setUsers, userDataFromApi]);
这段代码是实现细节。React测试库强制执行UI测试。你可以阅读 在您的测试中,您可以执行与用户相同的操作(填写表单、单击等),然后检查用户应该看到或不应该看到的内容(可能是他的姓名、统计信息等)
如果您从后端获取数据,并且只想测试前端,您可以模拟后端的答案。是的,我已经在UI中尽了我所能,但jest test coverage指出需要覆盖这些行。由于这些线,我的组件覆盖率下降了10%