尝试使错误最严重的原因是,iv'e最近从scss(BEM)替换为样式组件,并尝试使所有测试再次变为绿色。
从jest-styled-components自己的文档中,我采用了此功能
const shallowWithTheme = (tree, theme) => {
const context = shallow(<ThemeProvider theme={theme} />)
.instance()
.getChildContext()
return shallow(tree, { context })
}
但是当我用它安装按钮组件并调用.html()时,出现以下错误......
// cannot read property 'radius' of undefined'
半径来自主题提供者的props.theme.borders.radius变量,这是我的测试。
describe("fake test", () => {
it("should mount a button", () => {
const test = shallowWithTheme(<Button variant={"primary"}/>, theme);
expect(true).toEqual(true);
});
});
寻找真正的,关于如何以非hacky方式解决此问题的想法,当我搜索Google时并没有真正出现