【问题标题】:org.mockito.exceptions.misusing.WrongTypeOfReturnValue: ArrayList cannot be returned by getDetails()org.mockito.exceptions.misusing.WrongTypeOfReturnValue: ArrayList 不能由 getDetails() 返回
【发布时间】:2018-06-02 07:27:50
【问题描述】:

这里是代码

public class TodoBusinessImpl {
        BusinessManager businessManager;

        public TodoBusinessImpl(BusinessManager businessManager) {
            this.businessManager = businessManager;
        }

        public List<String> retrieveTodosRelatedToSpring(String user) {
            List<String> filteredTodos = new ArrayList<String>();
            Map<String, String> test = businessManager.getDetails();
            return filteredTodos;
        }
    }

这有什么问题?我做错了什么

public class MockitoTest {  
    private BusinessManager businessManager;    
    @Before
    public void setUp() {
        businessManager = Mockito.mock(BusinessManager.class);
    }   
    @Test
    public void retrieveTodosRelatedToSpringTest() {
        TodoBusinessImpl todoBusinessImpl = new TodoBusinessImpl(businessManager);
        Mockito.when(todoBusinessImpl.retrieveTodosRelatedToSpring("test"))
    .thenReturn(Arrays.asList("test"));
    }
}

这是测试类。获取 org.mockito.exceptions.misusing.WrongTypeOfReturnValue 的异常: getDetails() 无法返回 ArrayList

【问题讨论】:

  • 请编写您的测试类的代码来查看它
  • @DhawalKapil 测试类添加
  • 你在嘲笑你正在测试的响应?
  • @dhawal BusinessMnager 被嘲笑。我想测试 TodoBusinessImpl 的方法

标签: java mockito junit4


【解决方案1】:

您必须调用您正在测试的方法,而不是模拟它的行为“不告诉它在被调用时要做什么”。 而不是:

Mockito.when(todoBusinessImpl.retrieveTodosRelatedToSpring("test")).thenReturn(Arrays.asList("test"));

你应该这样做:

 List<String> list = todoBusinessImpl.retrieveTodosRelatedToSpring("test");
 // print list or assert it's content to make sure you're getting the right response

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-01
    • 2020-01-07
    • 2012-05-27
    • 2016-02-22
    • 2015-10-31
    • 2021-11-02
    • 2012-08-26
    • 2020-04-30
    相关资源
    最近更新 更多