java - 如何捕获可变参数

标签 java unit-testing junit powermock

我有静态方法,我想捕获varargs

Executor ex = new Executor();
ex.execute(String nodeName, boolean status, Property ... properties);

ArgumentCaptor<Property> propertyCaptor = ArgumentCaptor.forClass(Property.class);
verify(ex).execute(anyString(), anyBoolean(), propertyCaptor.capture);

propertyCaptor.getValue() - 不起作用????

最佳答案

我不确定你到底想测试什么,但以下是有效的:

class SpecialExecutor implements Executor {
        @Override
        public void execute(Runnable command) {

        }

        public void execute(String nodeName, boolean status, Property... properties) {

        }
    };

    @Test
    public void test() {
        SpecialExecutor ex = new SpecialExecutor();

        ArgumentCaptor<Property> propertyCaptor = ArgumentCaptor.forClass(Property.class);
        verify(ex).execute(anyString(), anyBoolean(), any(Property[].class));
    }

关于java - 如何捕获可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39790990/

相关文章:

java - Servlet 过滤器重定向 : How to redirect after chain. doFilter(request,resp);

java - 如何在 MS SQL Server 中存储公钥/私钥?

java - 如何设置 Eclipse JUnit 插件测试环境

java - 完全不相关的代码行出现断言错误 - 学校项目的 Junit 测试

c# - ASP.NET Core 单元测试在测试 Controller 问题响应时抛出 Null Exception

python - 如何对 django 消息进行单元测试?

javascript - 为什么 ngForm "controls"属性在我的测试中为空? ( Angular )

eclipse - Eclipse 中junit 的等宽字体已弃用

java - 为什么我的基于 Mockito 的单元测试无法在 Eclipse 中运行?

java - Mockito java - 使用不同参数的测试方法调用