显示与@MockBean Annotated Mock的交互

时间:2017-07-03 10:05:46

标签: spring testing mockito

在Spring应用程序中,可以使用默认自动装配的模拟bean编写测试,并且可以使用通常的Mockito方法进一步自定义。为此,使用@MockedBean批注。 但是,当仅使用没有Spring的Mockito时,可以配置模拟以打印所有交互,请参阅How to use Mockito to show all invocations on a mock。 使用模拟bean也可以调试吗?

1 个答案:

答案 0 :(得分:2)

没有Sprint原生方式,但可以使用Mockito中的mockingDetails(<some mock>)方法检索模拟的MockingDetails,然后打印交互。将调试放在@After注释方法中,每次都显示它,即使测试失败。

import static org.mockito.Mockito.mockingDetails;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import com.fasterxml.jackson.core.JsonProcessingException;

@RunWith(SpringRunner.class)
@SpringBootTest(
public class MyTest {
    @MockBean
    LoginDAO loginDaoMock;

    @Test
    public void xyz()  {
    // some test
    }

    @After
    public void showInteractions() {
        System.out.println(mockingDetails(loginDaoMock).getInvocations());
    }
}