Spring+Junit+Mockitoを使用してコードの自己測定を行います
コードを再構築するときの完璧なテスト作業は私たちに大きな助けを与えることができます.次の時、私はMockitoのDemoを使って、Dubboの関連インタフェースを交換することを目的としています.Mockitoに詳しくない学生に参考に供します.junit:junit:4.11 org.springframework:spring-test:3.2.4.RELEASE org.mockito:mockito-all:1.10.19 jdk1.8 BaseTest MockTestDemo
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ContextConfiguration(locations = {"classpath:spring/application.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
public class BaseTest {
@Before
public void setup() {
/** mock ,SpringJUnit4ClassRunner , mock */
MockitoAnnotations.initMocks(this);
}
@Test
public void test() {
Assert.assertEquals(1, 1);
}
}
import cn.idongjia.makalu.biz.PostBO;
import cn.idongjia.makalu.domain.post.MakaluUser;
import cn.idongjia.makalu.manager.ClanManager;
import cn.idongjia.makalu.pojo.post.Post;
import cn.idongjia.makalu.repo.PostRepo;
import cn.idongjia.makalu.service.PostService;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.Spy;
import javax.annotation.Resource;
import java.util.Optional;
/*
* service @InjectMocks , setup MockitoAnnotations.initMocks(this); ,
* @Mock @Spy service 。
* @Mock, ,service provider Mock , Mock 。
* @Autowired @Spy , Mock , 。
*/
public class MockTestDemo extends BaseTest{
@InjectMocks
@Resource
PostService postService;
@InjectMocks
@Spy
@Resource
private PostBO postBO;// postService
@InjectMocks
@Spy
@Resource
private PostRepo postRepo;// postRepo
//Dubbo
@Mock
private ClanManager clanManager;// postRepo
@Test
public void test() {
System.out.println("======***************");
/**
* 。
*/
User mu = new User();
mu.setUsername("zzz");
Optional user = Optional.of(mu);
//
Mockito.when(clanManager.takeUser(21L)).thenReturn(user);
Post post = this.postService.get(5L);
System.out.println(String.format(" mock :%s", post.getUsername()));//
System.out.println("======***************");
}