使用 Mockito,如何拦截 void 方法上的回调对象?
我正在使用mockito 来测试遗留的JAAS/LDAP 登录模块。
javax.security.auth.callback.CallbackHandler
接口定义了该函数:
void handle(javax.security.auth.callback.Callback[] callbacks)
我期望 callbacks
包含一个 NameCallback
,它是对象需要对其进行操作才能通过测试。
有没有办法有效地模拟这个,或者我最好使用 CallbackHandler
的存根实现?
I'm using mockito to test a legacy JAAS/LDAP login module.
The javax.security.auth.callback.CallbackHandler
interface defines the function:
void handle(javax.security.auth.callback.Callback[] callbacks)
I'm expecting callbacks
to contain a NameCallback
, which is the object that needs to be manipulated to pass the test.
Is there a way to mock this effectively, or would I be better off with a stubbed implementation of CallbackHandler
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于返回
void
的函数,请使用 doAnswer()并且执行拦截的
Answer
必须作为doAnswer
的参数传入,例如匿名类:在这种情况下,
args
将是数组Callback[]
!For functions returning
void
, use doAnswer()And an
Answer
that performs the interception must go in as the parameter todoAnswer
, e.g. as an anonymous class:In this case
args
will be the arrayCallback[]
!