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