gpt4 book ai didi

java - 当任何 Any 参数用于方法时,Mockito stub 返回 null

转载 作者:行者123 更新时间:2023-12-02 08:41:20 26 4
gpt4 key购买 nike

我有以下我想要子的方法:

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;
}

最佳答案

  • 在第一条评论后编辑 -我发现您在定义 getProductsArrayTest() 时调用了 getProductsArrayForTest() 方法。检查是否只是帖子中的错误,甚至是代码中的错误。但是这里是代码并且测试成功。

    public class Product {
    double price;
    public Product() {

    }
    public double getPrice() {
    return this.price;
    }
    public void setPrice(double value) {
    this.price=value;
    }
    }

    ProductArray.class

    import java.util.ArrayList;
    import java.util.List;


    public class ProductArray {
    private List<Product> productList;
    public ProductArray() {
    productList=new ArrayList<Product>();

    }
    public void add(Product product) {
    this.productList.add(product);
    }
    public List<Product> getProductList(){
    return this.productList;
    }
    }

    产品测试.类

    public class ProductTest {
    @Test
    public void testProduct() {
    DataService dataserviceMock = Mockito.mock(DataService.class);
    ProductArray productsArrayTest = getProductsArrayTest();
    Mockito.when(dataserviceMock.getProducts(Mockito.any(ProductFilter.class), Mockito.any(Date.class), Mockito.any(Date.class), Mockito.anyBoolean())).thenReturn(productsArrayTest);
    assertEquals(1, dataserviceMock.getProducts(null , null , null , false).getProductList().size());
    }
    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;
    }

    }

关于java - 当任何 Any 参数用于方法时,Mockito stub 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com