Hamcrest下载地址为https://code.google.com/p/hamcrest/downloads/list
提供了不少增强junit测试的方法,在junit 4.11中,已经加进来了
import java.util.HashMap;
import java.util.Map;
import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
public class TestByHamcrest {
/**
* 如果用的是JUnit-4.10,那么这里可以使用org.junit.Assert类,它提供了assertThat的功能
* 如果用的是JUnit低版本,如MyEclipse6.5自带的JUnit-4.3.1则未提供Assert.assertThat功能
* 这时可以使用hamcrest-all-1.3.jar自带的org.hamcrest.MatcherAssert.assertThat()方法
*/
@Test
public void testHamcrest() {
// 50是否大于20
Assert.assertThat(50, Matchers.greaterThan(20));
// 50是否大于或等于50
Assert.assertThat(50, Matchers.greaterThanOrEqualTo(50));
// 50是否即大于20又小于60(allOf方法类似于Java中的&&)
Assert.assertThat(50, Matchers.allOf(Matchers.greaterThan(20), Matchers.lessThan(60)));
// 50是否大于20或小于40(anyOf方法类似于Java中的||)
Assert.assertThat(50, Matchers.anyOf(Matchers.greaterThan(20), Matchers.lessThan(40)));
// 测试"abc.txt"是否以"txt"结束
Assert.assertThat("abc.txt", Matchers.endsWith("txt"));
Assert.assertThat("abc.txt", Matchers.startsWith("ab"));
Assert.assertThat("abc.txt", Matchers.containsString("c.t"));
Assert.assertThat(22 + "aa", Matchers.hasToString("22aa"));
Assert.assertThat("http://blog.csdn.net/jadyer", Matchers.instanceOf(String.class));
Assert.assertThat("http://blog.csdn.net/jadyer", Matchers.notNullValue());
Assert.assertThat(null, Matchers.nullValue());
// 针对集合的测试
String[] users = {"玄玉", "Jadyer"};
Assert.assertThat(users, Matchers.hasItemInArray("玄玉"));
Map<String, String> userMap = new HashMap<String, String>();
userMap.put("11", "玄玉");
userMap.put("22", "Jadyer");
userMap.put("33", "http://blog.csdn.net/jadyer");
Assert.assertThat(userMap, Matchers.hasKey("22"));
Assert.assertThat(userMap, Matchers.hasValue("http://blog.csdn.net/jadyer"));
}
分享到:
相关推荐
5. **Hamcrest匹配器**:Junit4.11集成了Hamcrest库,使得断言更加清晰和强大。例如,可以使用`assertThat()`方法结合Hamcrest匹配器进行复杂的比较。 6. **改进的错误报告**:4.11版本在错误报告上做了改进,提供...
JUnit 4.11 版本引入了一些新特性,比如支持Hamcrest匹配器,使得断言更加灵活。同时,它改进了参数化测试,允许测试方法接收一组参数,从而可以一次性执行多个相似的测试。此外,还加强了对注解的支持,例如`@Rule`...
此版本的JUnit引入了一些新特性,如对Hamcrest匹配器的内置支持,使得测试表达更清晰、更具可读性;增加了对注解的更灵活的处理,允许自定义测试规则;还增强了异常处理,使得测试失败时能提供更精确的信息。 在...
11. **Hamcrest匹配器**:JUnit 4.11集成了Hamcrest库,提供了丰富的匹配器,可以编写更加清晰和可读性强的断言。 12. **JVM参数**:通过`junit.runner.Version`类可以获取JUnit的版本信息,而`junitparams....
《Junit与Hamcrest集成测试框架详解》 在软件开发过程中,单元测试是不可或缺的一环,它能够确保代码的质量和可维护性。Junit作为Java领域最常用的单元测试框架,而Hamcrest则是一款强大的匹配器库,能为测试提供...
版本1.3是Hamcrest的一个稳定版本,可以与JUnit4.11很好地配合使用。 4. **commons-logging-1.2-bin.zip**: Apache Commons Logging是Java的日志抽象层,版本1.2。Spring框架在内部大量使用了Commons Logging,...
3. `junit-4.11.jar`:这是JUnit 4.11版本的主库,包含了JUnit框架的所有核心类和接口。这个版本引入了一些新的特性,如参数化测试、注解驱动的测试结构以及对Java 5和6的全面支持。 JUnit的关键知识点包括: - **...