gpt4 book ai didi

angular - Cypress - 以编程方式操作 Angular/NGRX 应用程序

转载 作者:行者123 更新时间:2023-12-03 15:12:28 25 4
gpt4 key购买 nike

您如何以编程方式与 Cypress 的 Angular/NGRX 交互? cypress 文档似乎仅指 React:https://www.cypress.io/blog/2018/11/14/testing-redux-store/

// expose store when run in Cypress
if (window.Cypress) {
window.store = store
}
cy
.window()
.its('store')
.invoke('dispatch', { type: 'ADD_TODO', text: 'Test dispatch' })
// check if the app has updated its UI

这将是 React 方法;那么 Angular 呢?

最佳答案

在 Angular 中,它几乎是一样的。在您的 AppComponent或者无论您有商店,您都可以执行以下操作:

// Expose the store
@Component({...})
export class AppComponent {
constructor(private store: Store<AppState>){
if(window.Cypress){
window.store = this.store;
}
}
}

然后,您可以创建自己的 Cypress 实用程序:
function dispatchAction(action: Action): Cypress.Chainable<any> {
return cy.window().then(w => {
const store = w.store;
store.dispatch(action);
});
}

最后,您可以在 Cypress 测试中使用它:
dispatchAction(new MyAction()).then(() => {
// Assert the side effect of your action
// ...
// cy.get('.name').should('exist');
});

关于angular - Cypress - 以编程方式操作 Angular/NGRX 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57542554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com