微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不会为同一个类两次调用ExpectNew

如何解决不会为同一个类两次调用ExpectNew

我正在使用EasyMock编写junit测试。因此对于一个对象:-

DataProvider dataProvider = new DataProvider(Data data,Provider provider);

所以我不得不模拟两次行为,就像这样:-

@Mock
DataProvider dataProvider1,dataProvider2;
   1. PowerMock.expectNew(DataProvider.class,dataRequest,provider1).thenReturn(mockDataProvider1);
   2. PowerMock.replay(DataProvider.class);
   3. PowerMock.expectNew(DataProvider.class,provider2).thneReturn(mockDataProvider2);
   4. PowerMock.replay(DataProvider.class);

但是当我尝试执行this时。这在第2行抛出错误。 当我删除第3行和第4行时,它成功了,没有任何问题。

我需要在自己的行为中使用两次。有人可以帮忙吗?

解决方法

replay()方法不应在同一测试方法中被同一类调用两次。

所以:-

   1. PowerMock.expectNew(DataProvider.class,dataRequest,provider1).thenReturn(mockDataProvider1);
   3. PowerMock.expectNew(DataProvider.class,provider2).thneReturn(mockDataProvider2);
   4. PowerMock.replay(DataProvider.class);

这东西有用。

对mockStatic()函数也有相同的建议。

一个人还应该记住,在一个测试方法中,对一个类只使用一次mockStatic()函数。 所以:-

PowerMock.mockStatic(DataProvider.class);

在测试方法中只能使用一次。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。