1.下载 hamcrest
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-all</artifactId>
<version>1.3</version>
</dependency>
2.hamcrest示例
package com.qunar.calcuate;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestCal {
private Calcuate calcuate = new Calcuate();
@Test(expected = ArithmeticException.class)
public void testDivide() {
int res = calcuate.divide(2, 0);
assertEquals(res, 2);
}
@Test
public void testHamcrest(){
assertThat(10, greaterThan(5));
assertThat(10, allOf(greaterThan(2),lessThan(20)));
assertThat("a.txt", endsWith("txt"));
}
}
3.可以使用TestSuite 来组成多个测试组件
package com.qunar.calcuate;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestOther {
@Test
public void test01(){
assertThat(10, equalTo(10));
}
}
package com.qunar.calcuate;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Test;
public class TestOther1 {
@Test
public void test01(){
assertThat(10, equalTo(10));
}
}
package com.qunar.calcuate;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ TestOther.class, TestOther1.class, TestCal.class })
public class TestSuite {
@Test
public void test01() {
}
}
@RunWith表示这是一个Suit类
@SuiteClasses表示这个类中包含哪些测试类
建立一个单独的source包来放Test
测试类包应该和需要测试的的类一致
测试单元中每一个方法都必须是可以独立执行,没有顺序,测试方法之间不能有任何的依赖性