需要添加的依赖为:
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.19.1</version>
<scope>test</scope>
</dependency>
测试代码可以如下:
package com.baozun.ecs.oms4.sp.cicd.unit.sp;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.data.mongodb.core.MongoOperations;
public class EditSpInfoTest extends BaseUnitTest{
@InjectMocks
private MongoDbSpInfoEditManagerImpl mongoDbSpInfoEditManagerImpl;
@Mock
private MongoOperations mongoOperations;
@Test(expected = IllegalArgumentException.class)
public void 促销活动编辑_入参不合法_编辑失败_抛异常() throws Exception {
// given(入参)
SpInfoEditVo spInfoEditVo = null;
// when
mongoDbSpInfoEditManagerImpl.editSalesPromotionInfo(spInfoEditVo);
// then(出参)
}
@Test(expected = IllegalArgumentException.class)
public void 促销活动编辑_入参合法_促销活动不存在() throws Exception {
//given(入参)
SpInfoEditVo spInfoEditVo = SpInfoEditVoFactory.newSpInfoEditVo();
when(mongoOperations.findOne(any(), any(), anyString())).thenReturn(null);
//when(方法)
mongoDbSpInfoEditManagerImpl.editSalesPromotionInfo(spInfoEditVo);
//then(出参)
}
@Test(expected = IllegalArgumentException.class)
public void 促销活动编辑_入参合法_促销状态notin新建驳回待提交_编辑失败_抛异常() throws Exception{
// given(入参)
SpInfoEditVo spInfoEditVo = SpInfoEditVoFactory.newSpInfoEditVo();
SpInfo returnSpInfo = SpInfoFactory.newSpInfo();
returnSpInfo.setStatus(Constants.SP_STATUS_5);
when(mongoOperations.findOne(any(), any(), anyString())).thenReturn(returnSpInfo);
// when
mongoDbSpInfoEditManagerImpl.editSalesPromotionInfo(spInfoEditVo);
// then(出参)
}
@Test
public void 促销活动编辑_入参合法_比对有差异_编辑成功() throws Exception {
// given(入参)
SpInfoEditVo spInfoEditVo = SpInfoEditVoFactory.newSpInfoEditVo();
spInfoEditVo.setId("5b459bf6daac922b69647960");
SpInfo returnSpInfo = SpInfoFactory.newSpInfo();
when(mongoOperations.findOne(any(), any(), anyString())).thenReturn(returnSpInfo);
// BeanUtils.copyProperties(spInfoEditVo, returnSpInfo);
// when
mongoDbSpInfoEditManagerImpl.editSalesPromotionInfo(spInfoEditVo);
// then(出参)
}
}