小编Wim*_*oet的帖子

使用 Storybook 和 Cypress 测试角度分量 @Output

我正在尝试测试角度分量的输出。

我有一个复选框组件,它使用 EventEmitter 输出其值。复选框组件包装在故事书故事中,用于演示和测试目的:

export const basic = () => ({
  moduleMetadata: {
    imports: [InputCheckboxModule],
  },
  template: `
<div style="color: orange">
 <checkbox (changeValue)="changeValue($event)" [selected]="checked" label="Awesome">
 </checkbox>
</div>`,
  props: {
    checked: boolean('checked', true),
    changeValue: action('Value Changed'),
  },
});
Run Code Online (Sandbox Code Playgroud)

我正在使用一个操作来捕获值更改并将其记录到屏幕上。

然而,当为此组件编写 cypress e2e 时,我仅使用 iFrame 而不是整个故事书应用程序。

我想找到一种方法来测试输出是否正常。我尝试在 iFrame 中的 postMessage 方法上使用间谍,但这不起作用。

 beforeEach(() => {
      cy.visit('/iframe.html?id=inputcheckboxcomponent--basic', {
        onBeforeLoad(win) {
          cy.spy(window, 'postMessage').as('postMessage');
        },
      });
    });
Run Code Online (Sandbox Code Playgroud)

然后断言将是:

  cy.get('@postMessage').should('be.called');
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以断言已(changeValue)="changeValue($event)" 触发吗?

angular storybook cypress storybook-addon-specifications angular-storybook

5
推荐指数
2
解决办法
6165
查看次数