MyEclipse如何编写JUnit测试类
来源:互联网 发布:什么软件可以套花呗 编辑:程序博客网 时间:2024/06/10 20:44
最近在看《敏捷软件开发》,看到第31的有关于编写测试类测试一个素数生成器的例子,特此动手实践了下,发现了书中的一个小错误,同时在网上看到一个更好的测试方法。
版本一
//这是书上版本一public class GeneratePrimes { public static int[] generatePrimes(int maxValue){ if(maxValue >=2){ int s = maxValue+1; boolean[] f = new boolean[s]; int i; for(i=0;i<s;i++){ f[i]=true; } f[0]=f[1]=false; int j; for(i=2;i<Math.sqrt(s)+1;i++){ for(j=2*i;j<s;j+=i) f[j] = false; } int count=0; for(i=0;i<s;i++){ if(f[i]) count++; } int[] primes = new int[count]; for(i=0,j=0;i<s;i++){ if(f[i]) primes[j++]=i; } return primes; } else { return new int[0]; } }}
版本二
//这是书上版本二public class PrimeGenerator { private static int s;//这里书上是a,很明显错了 private static boolean[] f; private static int[] primes; public static int[] generatePrimes(int maxValue){ if(maxValue<2){ return new int[0]; }else{ initializeSieve(maxValue); sieve(); loadPrimes(); return primes; } } private static void loadPrimes() { int i; int j; int count = 0; for(i=0;i<s;i++){ if(f[i]){ count++; } } primes = new int[count]; for(i=0,j=0;i<s;i++){ if(f[i]){ primes[j++]=i; } } } private static void sieve() { int i; int j; for(i=2;i<Math.sqrt(s)+1;i++){ if(f[i]){ for(j=2*i;j<s;j+=i){ f[j]=false; } } } } private static void initializeSieve(int maxValue) { s=maxValue+1; f=new boolean[s]; int i; for(i=0;i<s;i++){ f[i]=true; } f[0]=f[1]=false; }}
书上的测试类
测试类,书上的测试PrimeGenerator的,顺着写就好
import junit.framework.TestCase;import junit.textui.TestRunner;public class TestGeneratePrimes2 extends TestCase { public static void main(String[] args) { TestRunner.main(new String[]{"TestGeneratePrimes"}); } public TestGeneratePrimes2(String name){ super(name); } public void testPrimes(){ int[] nullArray = PrimeGenerator.generatePrimes(0); assertEquals(nullArray.length, 0); int[] minArray = PrimeGenerator.generatePrimes(2); assertEquals(minArray.length, 1); assertEquals(minArray[0], 2); int[] threeArray = PrimeGenerator.generatePrimes(3); assertEquals(threeArray.length, 2); assertEquals(threeArray[0], 2); assertEquals(threeArray[1], 3); int[] centArray = PrimeGenerator.generatePrimes(100); assertEquals(centArray.length, 25); assertEquals(centArray[24], 97); }}
我自己写的测试类
测试类,我自己写来测试GeneratePrimes的
import static org.junit.Assert.*;import org.junit.Test;public class TestGeneratePrimes { @Test public void test() { int[] nullArray = GeneratePrimes.generatePrimes(0); assertEquals(nullArray.length, 0); int[] minArray = GeneratePrimes.generatePrimes(2); assertEquals(minArray.length, 1); assertEquals(minArray[0], 2); int[] threeArray = GeneratePrimes.generatePrimes(3); assertEquals(threeArray.length, 2); assertEquals(threeArray[0], 2); assertEquals(threeArray[1], 3); int[] centArray = GeneratePrimes.generatePrimes(100); assertEquals(centArray.length, 25); assertEquals(centArray[24], 97); }}
可以发现代码明显少了很多。
或者这样
import static org.junit.Assert.*;import org.junit.Test;public class TestGeneratePrimes { @Test public void testNull() { int[] nullArray = GeneratePrimes.generatePrimes(0); assertEquals(nullArray.length, 0); } @Test public void testMin(){ int[] minArray = GeneratePrimes.generatePrimes(2); assertEquals(minArray.length, 1); assertEquals(minArray[0], 2); } @Test public void testThree(){ int[] threeArray = GeneratePrimes.generatePrimes(3); assertEquals(threeArray.length, 2); assertEquals(threeArray[0], 2); assertEquals(threeArray[1], 3); } @Test public void testCent(){ int[] centArray = GeneratePrimes.generatePrimes(100); assertEquals(centArray.length, 25); assertEquals(centArray[24], 97); }}
测试结果看着也很清爽。
就是酱紫。
阅读全文
0 0
- MyEclipse如何编写JUnit测试类
- 如何编写Junit测试代码
- MyEclipse 下用Junit创建测试类
- MyEclipse中的junit测试
- myeclipse 使用 junit测试
- android中junit测试类的编写
- 如何使用Junit编写和组织测试程序
- 如何使用Junit编写和组织测试程序
- 如何使用Junit编写和组织测试程序
- MyEclipse的junit测试框架
- 编写DAOImpl的JUnit测试
- MyEclipse自动生成接口和JUnit测试类
- junit 如何一次对全部测试类进行测试
- 如何在Eclipse中用Junit编写测试用例(转)
- 如何使用JUnit写测试?
- 如何使用JUnit写测试?
- 如何使用junit测试struts
- Junit如何进行多线程测试
- Codeforces Round #430 (Div. 2) D.Vitya and Strange Lesson 异或 01字典树补集最小
- [C++] boost::function boost::bind 与 回调
- MyISAM和InnoDB的区别
- [C++] boost::less_than_comparable
- 当面试官问我们vector扩容机制时,他想问什么?
- MyEclipse如何编写JUnit测试类
- 整除的尾数
- 数位DP入门 + 待补上最后一题
- [C++] ACE书籍推荐
- 又学一招!二维向量vector<vector<int>>在VC下的使用技巧。
- Codevs 1169 传纸条
- ZooKeeper_1_分布式
- [C++] VS中出现未将对象引用设置到对象的实例
- HDOJ 连连看 (DFS (TLE))