程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Mokito:如何验证参数是具有特定参数的对象?

发布于2022-12-05 23:34     阅读(803)     评论(0)     点赞(0)     收藏(0)


我有一个发布如下的 EventBus

EventBus bus = EventBus.getDefault();
bus.post(new MyEvent("mystring", json));

我想执行单元测试以确保此总线已使用 MyEvent 对象调用后处理函数。

EventBus bus = mock(EventBus.class);
verify(bus).post(isA(MyEvent.class));

上面的代码运行良好。但是,我还想确保在实例化期间将“mystring”传递给 MyEvent 对象。我怎样才能做到这一点?


解决方案


要检查您是否将一些具体对象传递给方法,您可以使用 Mockito@Captor

@RunWith(MockitoJUnitRunner.class)
public TestClass{

@Mock
private EventBus bus;

@Captor
private ArgumentCaptor<MyEvent> myEventCaptor;

@Test
public void testSaveAccount() {
    methodToTest();

    verify(bus).post(myEventCaptor.capture());
    MyEvent myEvent = myEventCaptor.getValue(); // last value that was captured
    assertThat(myEvent.getString, is("mystring"));
}


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/583880/d5886414290222f274de/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

0 0
收藏该文
已收藏

评论内容:(最多支持255个字符)