小编Rob*_*kus的帖子

在react material-ui菜单中测试嵌套菜单项

我想测试具有嵌套菜单项的菜单.我希望能够模拟嵌套菜单项上的单击并查看是否调用了它的处理程序.我已经得到了没有嵌套菜单项的测试.

这是我正在尝试构建的测试的简单版本:

describe("menu", () => {
 it("should click on nested nested menu items", () => {
    const testOnClickSpy = Sinon.spy(() => {});
    const component = mount(
      <MuiThemeProvider><Menu>
        <MenuItem 
          primaryText={<span id="test">test</span>} onTouchTap={testOnClickSpy}
          menuItems={ <MenuItem  primaryText={<span id="nested">nested</span>} /> }/>
        </Menu></MuiThemeProvider>
    );

    simulateEvent(component.find("#test"), "touchTap");

    expect(component.find("#test").exists()).toBe(true);  // Works fine.
    expect(testOnClickSpy.callCount).toBe(1); // Works fine.
    component.update(); // <--- Does not seem to do anything?
    expect(component.find("#nested").exists()).toBe(true); // <--- Because this item cannot be found?
  }) 
})
Run Code Online (Sandbox Code Playgroud)

我用它simulateEvent来模拟触摸式水龙头:

require("react-tap-event-plugin")();
function simulateEvent(wrappedTarget, eventType) {
    const domNode = …
Run Code Online (Sandbox Code Playgroud)

testing reactjs jestjs material-ui enzyme

6
推荐指数
1
解决办法
766
查看次数

标签 统计

enzyme ×1

jestjs ×1

material-ui ×1

reactjs ×1

testing ×1