javascript - 在开玩笑的单元测试中使用 javascript 模拟静态类
问题描述
我有一个类和几个静态的。
export default class AccountActions {
static LIST_REQUEST = 'ACCOUNT_LIST_REQUEST';
static LIST_UPDATE = 'ACCOUNT_LIST_UPDATE';
static ACCOUNT_ROUTE_REQUEST = 'ACCOUNT_ROUTE_REQUEST';
// ... a lot more...
我正在尝试为这个类编写一些单元测试,我正在努力理解它返回的一些错误。
这是我最初的测试
import AccountActions from './account'
import AuthActions from './auth';
jest.mock('../app');
jest.mock('../client');
jest.mock('../tracking', () => ({
trackActivity: jest.fn(),
}));
let placeholder: Object = {};
describe('Account Action Creators Unit Tests:', () => {
test('accountListRequest dispatches appropriate actions after failed GET', () => {
placeholder.getAccountRouting = AccountActions.getAccountRouting;
const thunk = AccountActions.accountsListRequest();
我的减速机是
export function accountReducer(state: Object = defaultState, action: Object) {
switch (action.type) {
case AccountActions.LIST_REQUEST:
return { ...state, account_list_loading: true };
返回的错误是
TypeError:无法读取未定义的属性“LIST_REQUEST”
所以我试图模拟accountActions。jest.mock('./account');
然后返回的错误变为:
类型错误:thunk 不是函数
什么是模拟的最佳方式,AccountActions
因为它似乎总是返回 undefined ?
解决方案
推荐阅读
- google-apps-script - Google 日历访问权限
- php - 使用ajax删除数据库条目不起作用
- sql - SQL Server 使列数据不可删除
- xslt - XSL - 相交两个集合并返回找到的公共值
- c++ - 使用 CGAL 将多面体投影到 xy 平面
- java - 在 Eclipse(Indigo)中构建声纳时出错 无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar
- laravel - 对要使用的关系类型感到困惑
- c - 在C中更改子进程中的当前工作目录
- jquery - Django,访问从 JQuery AJAX 发送的 html 表单字段值
- python - 在虚拟环境中运行 Python 时忽略 PATH