繁体   English   中英

ExpectNew 没有被同一个 class 调用两次

[英]ExpectNew is not being called twice for same class

我正在使用 EasyMock 编写 junit 测试。所以对于 object:-

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, dataRequest, provider2).thneReturn(mockDataProvider2);
   4. PowerMock.replay(DataProvider.class);

但是当我试图执行这个时。 这是在第 2 行抛出错误。当我删除第 3 行和第 4 行时,它毫无问题地成功了。

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

在相同的测试方法中,不应为相同的 class 调用两次 replay() 方法。

所以:-

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

这东西奏效了。

对 mockStatic() function 也有同样的建议。

还应该记住在一种测试方法中对 class 仅使用 mockStatic() function 一次。 所以:-

PowerMock.mockStatic(DataProvider.class);

这应该在测试方法中只使用一次。

暂无
暂无

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

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