javascript - 使用 Jest 模拟同一模块的不同值
问题描述
我试图用 jest 测试一个反应组件,我是测试新手,所以请原谅任何错误。
我多次使用不同的值遵循这个解决方案Jest 模拟模块,但问题是我有不同的组件结构。
代码 :test.tsx
import { AccountPage } from "./AccountPage";
import { Store, Symbol } from "store-provider";
const accountStore = {
state: {
fetching: false,
};
<Store stores={[ [Symbol, accountStore] ]}>
<AccountPage />
</Store>
代码 : Account.tsx
import {module} from './modules';
import profile from '/profile';
export const () => {
{module['case'] && (
<Profile />
)
<div> Hello </div>
}
谁能告诉我如何开玩笑地使用渲染来运行这个场景。在将其作为单个返回组件运行链接的问题中。
我想将模块 ['case'] 模拟为真假。所以我可以测试这两种情况。
解决方案
考虑到它case
是可写的对象属性,它可以只备份和恢复而不影响其他测试:
let originalCase;
beforeEach(() => {
originalCase = module.case;
});
afterEach(() => {
module.case = originalCase;
});
it('...', () => {
module.case = true;
...
});
it('...', () => {
module.case = false;
...
});
推荐阅读
- node.js - React 模块没有作为依赖项正确导入到另一个模块中
- ios - 如何在 PDFView 中呈现单页 pdf 文档,使文档居中并完整呈现?
- c++ - 为什么 c++ 单例不能新,尽管“新”已被覆盖
- json - 读取 Perl JSON 结构
- sql - 增量销售产出
- reactjs - react-router:在 url 更新程序之后不渲染组件
- javascript - 创建自定义错误超类是否正确?
- typescript - Firebase:如何使用 UserCredential 重新进行身份验证
- wordpress - Apache 内存不足并以 1GB 的 RAM 重新启动
- google-app-maker - 从 appmaker 中的全名目录获取电子邮件地址