小编use*_*245的帖子

如何使用 Mockito 模拟方法调用链

我有一个这样的函数:

    @Override
        public ClassA createViewModel(ClassB product, ClassC classCVar)
                throws ModuleException
        {
            ClassA classAVar = ClassA.builder().build();
            try {
                if (product != null && product.getProductData() != null) {

                    String gl_name = product.getProductData().offers().get(0).productCategory().asProductCategory()
                            .inlined().map(ProductCategory::glProductGroup).map(ProductCategory.GLProductGroup::symbol)
                            .orElse("");
                    classAVar.setName = gl_name;

                }
                return classAVar;
            } catch (Exception e) {
                // some lines of code.
            }
Run Code Online (Sandbox Code Playgroud)

我这里有一行像 String gl_name =........... 其中包含一系列方法调用。现在我想使用 Mockito 模拟这个函数,并希望从所有这些函数调用中得到最终结果,就像 gl_name = "abc";

我怎样才能做到这一点?

我创建了一个新函数,并将方法调用链放入其中,如下所示:

public String fetchGLNameFunction(ClassB product)
    {
        String gl_name_result = product.getProductData().offers().get(0).productCategory().asProductCategory()
                .inlined().map(ProductCategory::glProductGroup).map(ProductCategory.GLProductGroup::symbol)
                .orElse("");
        return gl_name_result;
    }
Run Code Online (Sandbox Code Playgroud)

现在我尝试创建一个这样的模拟:

@Mock
    private ClassA classAVar; …
Run Code Online (Sandbox Code Playgroud)

java junit mockito

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

junit ×1

mockito ×1