如何解决不会为同一个类两次调用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 举报,一经查实,本站将立刻删除。