初次使用Junit

前言:今天被人问到了TDD和Junit,竟然不会,太out了,回来看了几分钟,没想到junit这么简单,写个程序记一下。


Junit是同极限编程中的TDD联系在一起的,所谓TDD就是Test Driven Development.

1,安装Junit

eclipse---windows--Preferences--java---Build Path ---new
Name,输入名称,随便; path:选择你下载的Junit的jar文件


2.实例
  编程实现anagram,所谓anagram,是一种单词game:两个比较的单词,字符长度一样,字符顺序不一样。比如: hello,ElloH; abc,Cba就是的,但是真正的anagram是比较的英语单词,咱先比较这种简单的情况。

按照TDD思想,拿到上面的需求后,咱先不编码,先写测试case.

import static org.junit.Assert.*;

import org.junit.Test;

public class AnagramTest {

	@Test
	public void testWhetherAnagrams(){
		Anagram a = Anagram.INSTANCE;
		Boolean result1 = a.whetherAnagrams("abcd", "dcBa");
		Boolean result2 = a.whetherAnagrams("abcde", "dcBa");
		assertEquals(true,result1);
		assertEquals(false,result2);
	}
}


assertEquals(true,result)表示:参数一(true)表示我希望这个case运行的结果,用它去同参数二(result)匹配,如果相同,则这个case就通过了,否则就不通过。

上面的assertEquals我刚开始看时一直不明白是啥意思,原来那个就是用来判断结果是否正确的断言,当然,还有像什么assertTrue/assertFalse之类的,但assertEquals用得最多。

好了,上面的test case写好了,下面,咱来实现Anagram类(TDD思想就是:先整test case,再整implement)


package net.codercn;
public class Anagram {

    public static final Anagram INSTANCE = new Anagram();

    public boolean whetherAnagrams(String s1,String s2){
    	if(s1.length() != s2.length()){
    		return false;
    	}
    	
    	char[] ch1 = s1.toLowerCase().toCharArray();
    	char[] ch2 = s2.toLowerCase().toCharArray();
    	Arrays.sort(ch1);
    	Arrays.sort(ch2);
    	
    	return Arrays.equals(ch1, ch2);
    	
    }
}


好了,运行一下上面的AnagramTest,变绿了就ok了。Junit这种测试工具,最大的好处是不用再写public static void main(String[] args)这一大串东西了。

猜你喜欢

转载自coderanch.iteye.com/blog/1677394