junit 使用ArgumentCaptor捕获具有多个参数的Void方法的参数[已关闭]

gtlvzcf8  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(105)

已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

9天前关闭
Improve this question
我有一个方法是无效的,我想验证这个方法的第二个参数。为什么是第二个参数,因为如果得到的变化取决于一些特定的条件。

采样方式addAttribute(String arg1, Object obj1)

在当前的代码库中,这个方法在arg1被更改的地方被多次使用,但我只想捕获第一个参数,例如REFRESH_FILTER,并想跳过其他调用
我使用ArgumentCaptor捕获Junit中的参数

aemubtdh

aemubtdh1#

下面是我为这个解决方案编写的代码

public void testIdentityStateFilterWhenEnableIdentityStateFFOff() throws GeneralException {
        ArgumentCaptor<Atr> attrCaptor = ArgumentCaptor.forClass(Atr.class);

       //ActualMethod Calls to test

        verify(_refreshContext.getTaskResult(), times(1)).addAttribute(ArgumentMatchers.eq(REFRESH_FILTER), attrCaptor.capture());

        assertNotNull(attrCaptor.getValue());
        assertEquals(getCoreFilter().toString(), attrCaptor.getValue());
    }

字符串

相关问题