import com.google.common.collect.Lists; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.RandomUtils; import java.util.Arrays; import java.util.List; /** * Created by Administrator on 2015/3/29. */ public class RandomDigits { public static final int DigitLength = 4; public String generate() { List<String> numbers = Lists.newArrayList(); int index = DigitLength; while (index > 0) { String number = String.valueOf(RandomUtils.nextInt(10)); if (!numbers.contains(number)) { numbers.add(String.valueOf(number)); index--; } } return StringUtils.join(numbers, ""); } }
import org.apache.commons.lang.StringUtils; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; /** * Created by Administrator on 2015/3/29. */ public class RandomDigitsTest { @Test public void should_return_four_digits_when_generate() throws Exception { RandomDigits randomDigits = new RandomDigits(); assertThat(randomDigits.generate(), is(NumberMatcher.matcher())); } @Test public void should_return_four_different_digits_when_generate() throws Exception { RandomDigits randomDigits = new RandomDigits(); assertThat(randomDigits.generate(), is(DifferentNumberMatch.matcher())); } @Test public void should_return_random_digits_when_generate() throws Exception { RandomDigits randomDigits = new RandomDigits(); String firstRandomDigits = randomDigits.generate(); String secondRandomDigits = randomDigits.generate(); assertThat(StringUtils.equals(firstRandomDigits,secondRandomDigits), is(false)); } }
import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matcher; import java.util.regex.Pattern; /** * Created by Administrator on 2015/3/29. */ public class NumberMatcher extends BaseMatcher<String> { public String number; public static Matcher<String> matcher() { return new NumberMatcher(); } @Override public boolean matches(Object number) { this.number = (String) number; Pattern pattern = Pattern.compile("^\\d{4}$"); return pattern.matcher(this.number).find(); } @Override public void describeTo(Description description) { description.appendText(number + " not match '^\\d{4}$'"); } }
import com.google.common.collect.Lists; import com.google.common.collect.Sets; import org.hamcrest.BaseMatcher; import org.hamcrest.Description; /** * Created by Administrator on 2015/3/29. */ public class DifferentNumberMatch extends BaseMatcher<String> { private String number; public static BaseMatcher<String> matcher() { return new DifferentNumberMatch(); } @Override public boolean matches(Object o) { number = (String) o.toString(); return Sets.newHashSet(Lists.charactersOf(number)).size() == number.length(); } @Override public void describeTo(Description description) { description.appendText(this.number + " has same digit."); } }
相关推荐
自定义 Hamcrest 匹配器的集合 Android 的 TableLayout 匹配器包括: 查看具有指定视图的行下方的 N 行 视图是具有指定子索引的视图组的成员 与指定视图在同一行的视图 指定行和列交叉点处的视图 安卓版 ...
赠送jar包:hamcrest-core-1.3.jar; 赠送原API文档:hamcrest-core-1.3-javadoc.jar; 赠送源代码:hamcrest-core-1.3-sources.jar; 包含翻译后的API文档:hamcrest-core-1.3-javadoc-API文档-中文(简体)版.zip...
hamcrest-core-1.3.jar包 是一款hamcrest的核心包,主要用于开发者使用,一般在使用hamcrest框架的使用都会用到这个包,一般我们在下载安装junit的时候都包含了这个包。
hamcrest-core-1.3.ORC2.jar:hamcrest的核心包,使用hamcrest框架必须引入的包。直接下载到本地解压后即可使用。
支持Junit测试,简单实用,只需要添加即可,hamcrest-library-1.3.jar包是hamcrest的核心包,这个jar包主要用于补充hamcrest core包中的断言,导入后就可以正常开发使用了,主要适用于eclipse中的JUnit4测试操作,...
赠送jar包:hamcrest-2.1.jar; 赠送原API文档:hamcrest-2.1-javadoc.jar; 赠送源代码:hamcrest-2.1-sources.jar; 赠送Maven依赖信息文件:hamcrest-2.1.pom; 包含翻译后的API文档:hamcrest-2.1-javadoc-API...
引入junit-4.12.jar之外,还要引入2个依赖jar包:hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar,这里分享一下这两个包。
hamcrest-core-1.3.rc2.jar/hamcrest-library-1.3.rc2.jar 两个jar的打包 单元测试JUnit必须引用的jar包,否则会报错无法启动测试程序
赠送jar包:hamcrest-2.2.jar; 赠送原API文档:hamcrest-2.2-javadoc.jar; 赠送源代码:hamcrest-2.2-sources.jar; 赠送Maven依赖信息文件:hamcrest-2.2.pom; 包含翻译后的API文档:hamcrest-2.2-javadoc-API...
junit.jar + hamcrest-core.jar + hamcrest-library.jar,测试必备包
hamcrest-string-matcher 自定义hamcrest匹配器,用于计算子字符串的出现次数。当前的版本当前版本是0.0.5。基本用法 import static io.zinx.hamcrest.string.pattern.OccurrenceMatcher.hasOccurrenceCount;... @...
hamcrest-library.rar hamcrest-library.rar hamcrest-library.rar
该压缩包中包含了 hamcrest-core-1.3.jar包和 hamcrest-core-1.3.source.jar包
JUnit4 报错 no tests found with test runner 'JUnit4' 需要添加 hamcrest-core-2.2.jar 包重新启动
赠送jar包:hamcrest-library-1.3.jar; 赠送原API文档:hamcrest-library-1.3-javadoc.jar; 赠送源代码:hamcrest-library-1.3-sources.jar; 赠送Maven依赖信息文件:hamcrest-library-1.3.pom; 包含翻译后的API...
hamcrest-1.3.zip jar包和相关文档
junit-4.12.jar hamcrest-library-1.3.rc2.jar hamcrest-core-1.3.rc2.jar,单元测试框架JUnit必须引用的jar包