背景
在项目中往往需要对service逻辑进行单元测试验证,这里采用mockito对dao数据进行模拟,验证service逻辑
Servie
package com.xx.kdc.service;
import com.xx.kdc.dao.codegen.TestMapper;
import com.xx.kdc.model.codegen.Test;
import com.xx.kdc.model.codegen.TestExample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class TestService {
@Autowired
private TestMapper testMapper;
public Long save(Test test){
testMapper.insert(test);
return test.getId();
}
public void delete(Long id){
testMapper.deleteByPrimaryKey(id);
}
public Test getById(Long id){
return testMapper.selectByPrimaryKey(id);
}
public List<Test> getByName(String name){
TestExample testExample = new TestExample();
testExample.createCriteria().andTestNameEqualTo(name);
return testMapper.selectByExample(testExample);
}
public void update(Test test){
testMapper.updateByPrimaryKey(test);
}
}
Test Service
TestServiceTest.java
package com.xx.kdc.service;
import com.xx.kdc.dao.codegen.TestMapper;
import com.xx.kdc.model.codegen.TestExample;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.omg.CORBA.PUBLIC_MEMBER;
import javax.inject.Inject;
import java.util.Arrays;
import java.util.List;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
/**
* @author cao.shengyong
* @date 2021/2/24 14:26
*/
public class TestServiceTest {
@InjectMocks
private TestService testService;
@Mock
private TestMapper testMapper;
@Before
public void before() {
// 注入依赖
MockitoAnnotations.openMocks(this);
}
@Test
public void test_getById(){
com.westone.chengxun.kdc.model.codegen.Test test = new com.westone.chengxun.kdc.model.codegen.Test();
test.setTestName("asd");
test.setId(1L);
when(testMapper.selectByPrimaryKey(1L)).thenReturn(test);
com.westone.chengxun.kdc.model.codegen.Test byId = testService.getById(1L);
Assert.assertTrue(byId != null);
}
@Test
public void test_getByName(){
String testName = "aaa";
com.westone.chengxun.kdc.model.codegen.Test test = new com.westone.chengxun.kdc.model.codegen.Test();
test.setTestName(testName);
test.setId(1L);
when(testMapper.selectByExample(any(TestExample.class))).thenReturn(Arrays.asList(test));
List<com.westone.chengxun.kdc.model.codegen.Test> list = testService.getByName(testName);
Assert.assertTrue(list.size() == 1);
}
@Test
public void test_save(){
com.westone.chengxun.kdc.model.codegen.Test test = new com.westone.chengxun.kdc.model.codegen.Test();
test.setTestName("bb");
test.setId(1L);
Long id = testService.save(test);
Assert.assertTrue(id == 1L);
}
@Test
public void test_update(){
com.westone.chengxun.kdc.model.codegen.Test test = new com.westone.chengxun.kdc.model.codegen.Test();
test.setTestName("cc");
testService.update(test);
}
@Test
public void test_delete(){
testService.delete(1L);
}
}