繁体   English   中英

如何模拟Wicket组件

[英]How to mock a Wicket component

我试图在WicketTester和Spock / Mockito的帮助下对wicket小组进行单元测试。

在此面板中,将在一个良好的案例场景中显示ModalWindow (确认对话框)。

我想验证此对话框是否会显示,因此我尝试模拟组件,将其注入面板并测试是否调用了show方法。 这不起作用,因为Wicket抛出以下错误:

java.lang.IllegalStateException: org.apache.wicket.Component has not been properly detached. 
Something in the hierarchy of X has not called super.onDetach() in the override of onDetach() method

onDetach mock不能在它的超类上调用onDetach方法。

我已经尝试对ModalWindow进行存根并使用间谍来验证是否调用了show方法,但该方法的实现具有难以模拟的依赖/外部调用。

我应该以哪种方式解决这个问题? 或者我不应该尝试进行这种测试工作?

我创建了一个自定义版本的ModalWindow,它只是覆盖#show()方法来调用super.show()并引发一个调用该方法的标志。 然后在面板测试中使用此自定义版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM