小结一下,Junit4套件测试.
在com.dadao.util包中有两个编写好的java的程序.BetsFilter.java,OddsFilter.java
BetsFilter.java代码如下:
- package com.dadao.util;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class BetsFilter {
- public String formatBets(String bets){
- String result=null;
- String filtedFirstBets = bets.replace("-", "/");
- String oldstr = ".0";
- result=filtedFirstBets.replace(oldstr, "");
- String regex = "((//d//.//d)0).*";
- Matcher matcher = Pattern.compile(regex).matcher(result);
- if(matcher.matches()){
- result = result.replaceAll(matcher.group(1), matcher.group(2));
- }
- return result;
- }
- }
OddsFilter.java代码如下:
- package com.dadao.util;
- public class OddsFilter {
- public boolean isNeedOdds(Float oddsAteam, Float oddsBteam,double need) {
- float oddsA = oddsAteam.floatValue();
- float oddsB = oddsBteam.floatValue();
- if (oddsA < 0) {
- oddsA = (Math.abs(oddsA) + 1) / Math.abs(oddsA) - 1;
- }
- if (oddsB < 0) {
- oddsB = (Math.abs(oddsB) + 1) / Math.abs(oddsB) - 1;
- }
- if (oddsA * oddsB >= need) {
- return true;
- } else
- return false;
- }
- }
测试类BetsFilterTest代码如下:
- package com.dadao.util;
- import org.junit.Assert;
- import org.junit.BeforeClass;
- import org.junit.Test;
- public class BetsFilterTest {//注意命名规范,较好的命名方式应该是要测试的类名后面加上"Test"
- private static BetsFilter betsFilter;
- @BeforeClass //该方法和@AfterClass标注的方法一样,必须是静态的.全局只执行一次
- public static void initBetsFilterTest(){//
- betsFilter = new BetsFilter();
- }
- @Test
- public void testFormatBets(){//虽然测试方法的名字可以随便取,但要养成好的代码编写习惯,见名知意.
- String result = betsFilter.formatBets("2.50-3.0");
- Assert.assertEquals("2.5/3",result);
- String result2 = betsFilter.formatBets("0-0.5");
- Assert.assertEquals("0/0.5",result2);
- }
- @Test(expected = java.lang.NullPointerException.class )//如果未抛出NullPointerException,则失败
- public void testFormatBets2(){
- betsFilter.formatBets(null);
- }
- @Test
- public void testFormateBets3(){
- String result = betsFilter.formatBets("");
- Assert.assertEquals("", result);
- }
- @Test(timeout = 1)//如果被测试的代码执行超过一豪秒,则失败.
- public void testFormatBets4(){
- betsFilter.formatBets("2.50-3.0");
- }
- }
测试类OddsFilterTest代码如下:
- package com.dadao.util;
- import org.junit.Assert;
- import org.junit.Before;
- import org.junit.Test;
- public class OddsFilterTest {
- private OddsFilter oddsFilter;
- @Before
- public void initOddsFilterTest(){
- oddsFilter = new OddsFilter();
- }
- @Test
- public void testIsNeedOdds(){
- boolean b = oddsFilter.isNeedOdds(new Float(-0.88), new Float(0.9), 1.0);
- Assert.assertEquals(true,b);
- }
- }
下面编写一个套件测试类,代码如下:
- package com.dadao.util;
- import org.junit.runner.RunWith;
- import org.junit.runners.Suite;
- import org.junit.runners.Suite.SuiteClasses;
- @RunWith(Suite.class)//绑定一个叫做 Suite 的套件运行器
- @SuiteClasses({BetsFilterTest.class,OddsFilterTest.class}).//添加测试类
- public class UtilSuiteTest {
- }