为什么我用mockito3得到“method thenreturn undefined”来表示没有通配符类型的方法?

ecbunoof  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(207)

以下代码给出编译器错误: The method thenReturn(null) is undefined for the type FrequencySummary 在星号线上:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.mockito.ArgumentMatchers.*;
import org.junit.jupiter.api.BeforeEach;
import edu.mills.cs180a.wordnik.client.api.WordApi;

public class SimpleTest {
    private WordApi mockWordApi = mock(WordApi.class);

    @BeforeEach
    void setup() {
        when(mockWordApi.getWordFrequency(anyString(), "true", anyInt(), anyInt())
            .thenReturn(null); //***COMPILER ERROR ON THIS LINE
        when(mockWordApi.getWordFrequency("apple", "false", 2000, 2001))
            .thenReturn(null);
    }
}

我知道mockito对带有通配符的方法给出了这个错误;但是 WordApi.getWordFrequency 是:

FrequencySummary getWordFrequency(@Param(value="word") String word, @Param(value="useCanonical") String useCanonical, @Param(value="startYear") Integer startYear, @Param(value="endYear") Integer endYear)

该方法的另一个版本具有参数化类型,但具有不同的参数计数且没有通配符:

FrequencySummary getWordFrequency(@Param(value="word") String word, @QueryMap(encoded=true) Map<String, Object> queryParams)

如您所见,方法声明中有注解。这个坏了吗 thenReturn() ?
班级 WordApi 是由Spring和虚张声势产生的。我正在使用Java15和Mockito3.6.0。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题