JUnit4使用Java5中的单元测试

1、JUnit4使用Java5中的注解(annotation)
@Before:初始化方法   对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)
@After:释放资源  对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次)
@Test:测试方法,在这里可以测试期望异常和超时时间
@Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常
@Ignore:忽略的测试方法
@BeforeClass:针对所有测试,只执行一次,且必须为static void
@AfterClass:针对所有测试,只执行一次,且必须为static void
一个JUnit4的单元测试用例执行顺序为:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass;
每一个测试方法的调用顺序为:

@Before -> @Test -> @After;

2、执行顺序
随机执行
@FixMethodOrder(MethodSorters.DEFAULT)
public class TestOrder
按testcase名称字符串顺序执行
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestOrder

3、代码注入Mock
JMokit中的@Mocked与@Injectable区别

public class CommonDaoTest {
    @Mock
    private MongoTemplate mongoTemplate;  //注入mongdb mock类,不访问库
    @InjectMocks      //注入的目标类,要实现的test类
    private CommonDao commonDao;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this); //此处一定要记得加上,否则出错
    }

    @Test
    public void dropCollectionName() {
        doNothing().when(mongoTemplate).dropCollection("116");
        commonDao.dropCollectionName("116");    //CommonDao实现了删除文档的功能
    }
}
<dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>1.23</version>
            <scope>test</scope>
</dependency>

4、各种mock示例
when(systemConfigurationService.getConfiguration(eq(String.class), anyString())).thenReturn("(\\d+\\.*\\d*)");
        when(objService.getKnowledgePointList(anyList())).thenReturn(objectiveKnowledges);
        
when(mongoTemplate.updateFirst(any(Query.class), any(Update.class), anyString())).thenReturn(mock(WriteResult.class));

when(mongoTemplate.collectionExists("111")).thenReturn(false);

when(configRepository.findByType(anyString())).thenReturn(mock(Config.class));

转载于:https://my.oschina.net/u/2271251/blog/3100008

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值