我正在尝试测试角度分量的输出。
我有一个复选框组件,它使用 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