小编Fre*_*eez的帖子

跨测试文件共享模拟

我想跨测试文件共享模拟实现,但我不想全局模拟该模块。默认情况下我不需要模拟模块,但在某些情况下我想跨文件应用相同的模拟逻辑。

jest.mock('some-module', () => {
   //... long mock implementation
})
Run Code Online (Sandbox Code Playgroud)

我没有找到模块化笑话模拟的方法,我已经尝试了以下技术,但不起作用

// sharedMocks.js
export const mockSomeModule = () => {
    jest.mock('some-module', () => { /* ... */ })
}

// from other file
import { mockSomeModule } from '../sharedMocks'
mockSomeModule()
Run Code Online (Sandbox Code Playgroud)

或者

// sharedMocks.js
export const someModuleMock = () => {
    //... long mock implementation
}

// from other file
import { someModuleMock } from '../sharedMocks'
jest.mock('some-module', someModuleMock)
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing reactjs jestjs

5
推荐指数
1
解决办法
1284
查看次数

material-ui : 从主题中提取颜色

我想material-ui在这样的组件中使用我的主题中的颜色:

const MyComponent = props => (
   <UsersIcon color={currentTheme.primary1Color} />
)
Run Code Online (Sandbox Code Playgroud)

所以,我需要从当前提供的主题中提取一个值。

我找到了解决这种情况的有效解决方案,使用上下文来检索当前主题:

const MyComponent = (props, {muiTheme}) => (
    <UsersIcon color={muiTheme.palette.primary1Color} />
)
contextTypes = {
    muiTheme: PropTypes.object.isRequired,
}
Run Code Online (Sandbox Code Playgroud)

React上下文使用“引擎盖下” material-ui,所以我的解决方案是不是面向未来-的执行MUI可以改变- ,有没有办法在适当的(或推荐)的方式来解决这个问题?

reactjs material-ui

4
推荐指数
2
解决办法
4046
查看次数

标签 统计

reactjs ×2

javascript ×1

jestjs ×1

material-ui ×1

unit-testing ×1