【发布时间】:2020-08-06 02:37:32
【问题描述】:
我有下面的方法,我想子:
ProductArray productsArray;
productsArray = dataService.getProducts(ProductFilter pf, Date date1, Date date2, boolean matured);
在我的测试课中,我有以下
ProductArray productsArrayTest = getProductsArrayForTest();
Mockito.when(dataServiceMock.getProducts(Mockito.any(ProductFilter.class), Mockito.any(Date.class), Mockito.any(Date.class), Mockito.any(Boolean.class))).thenReturn(productsArrayTest);
但是在这个测试中productsArray 返回为null;
Mockito 给出以下警告
[MockitoHint] 1. Unused... -> at
com.company.util.TestProduct.testProductLoad(TestProduct.java:157)
[MockitoHint] ...args ok? -> at
com.company.datastore.ProductLoader.processAll(ProductLoaderProcess.java:158)
这可能是什么原因?
编辑:
private ProductArray getProductsArrayTest() {
ProductArray pa = new ProductArray();
Product product = createProduct();
pa.add(product);
return pa;
}
private Product createProduct() {
Product p = new Product();
p.setPrice(1.23);
return p;
}
【问题讨论】:
-
"DataService.getProducts" 这是一个静态方法吗?
-
不,它不是静态方法
-
能否贴出getProductsArrayForTest()方法的代码?并且 DataService 是一个类但是调用 DataService.getProducts() 不是静态的?
-
我的帖子有错误,应该是DataService的小写d,已贴出代码。
-
这样写有帮助吗:doReturn(productsArrayTest).when(dataServiceMock).getProducts(Mockito.any(ProductFilter.class), Mockito.any(Date.class), Mockito。 any(Date.class), Mockito.any(Boolean.class));
标签: java junit mockito stubbing