前言:今天被人问到了TDD和Junit,竟然不会,太out了,回来看了几分钟,没想到junit这么简单,写个程序记一下。
Junit是同极限编程中的TDD联系在一起的,所谓TDD就是Test Driven Development.
[b]1,安装Junit[/b]
eclipse---windows--Preferences--java---Build Path ---new
Name,输入名称,随便; path:选择你下载的Junit的jar文件
[b]2.实例[/b]
编程实现anagram,所谓anagram,是一种单词game:两个比较的单词,字符长度一样,字符顺序不一样。比如: hello,ElloH; abc,Cba就是的,但是真正的anagram是比较的英语单词,咱先比较这种简单的情况。
按照TDD思想,拿到上面的需求后,咱先不编码,先写测试case.
[b] assertEquals(true,result)表示:参数一(true)表示我希望这个case运行的结果,用它去同参数二(result)匹配,如果相同,则这个case就通过了,否则就不通过。[/b]
上面的assertEquals我刚开始看时一直不明白是啥意思,原来那个就是用来判断结果是否正确的断言,当然,还有像什么assertTrue/assertFalse之类的,但assertEquals用得最多。
好了,上面的test case写好了,下面,咱来实现Anagram类(TDD思想就是:先整test case,再整implement)
好了,运行一下上面的AnagramTest,变绿了就ok了。Junit这种测试工具,最大的好处是不用再写public static void main(String[] args)这一大串东西了。
Junit是同极限编程中的TDD联系在一起的,所谓TDD就是Test Driven Development.
[b]1,安装Junit[/b]
eclipse---windows--Preferences--java---Build Path ---new
Name,输入名称,随便; path:选择你下载的Junit的jar文件
[b]2.实例[/b]
编程实现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);
}
}
[b] assertEquals(true,result)表示:参数一(true)表示我希望这个case运行的结果,用它去同参数二(result)匹配,如果相同,则这个case就通过了,否则就不通过。[/b]
上面的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)这一大串东西了。