做事往往要带很强的目的性去做才可以成功,单元测试也不例外
单元测试目的:
首先保证代码质量。
其次保证代码的可维护。
再此保证代码的可扩展。
目的之一代码的代码质量。
我们编写的代码虽然可以通过编译器检测到语法的正确性质,但并不能保证代码逻辑也是正确的。我们该怎么保证代码执行是正确的呢。好下面我们来看下代码。
java 代码
int add(int x, int y){
return x+y;
}
上面的功能模块。下面是段测试代码
java 代码
void testAdd(){
//我们要求程序逻辑是1+4=5;
assertEquals(5,add(1,4);
}
经过测试以后,如果你修改了int add(int x, int y);里面的逻辑,如果修改的正确,测试代码始终都是见到绿色的。如果你逻辑错了。那不好意思,你的测试将会让你重新写那段逻辑代码。直到你正确为止。
有个比较特殊的情况,如果我测试代码写成这样,那我保证逻辑代码的正确性,但我却看不到我期待的绿色,这有是什么原因呢?
java 代码
1. void testAdd(){
2. //我们要求程序逻辑是1+4=5;
3. assertEquals(6,add(1,4);
4. }
我个人认为这个问题并是逻辑代码的问题,而是你测试代码中的逻辑问题,
噢,MyGot,作为程序员的我。已经为逻辑代码伤脑筋了。还要为测试代码烦恼,做人真命苦啊。 想来也确实是这样。
这就引申了另外一个问题,怎么样才可以保证我逻辑代码的可测性?
目的之二代码的可维护性。
就拿上面的例子来说吧。只要我们的单元测试是正确的,那我们就可以保证无论你怎么修改那段代码,只要测试代码可以产生绿色条,那OK,你修改的逻辑代码是正确的。当然可维护并非只有这点,还有,比如保证修改了这段代码不会影响到其他的模块等。
文章来源于领测软件测试网 https://www.ltesting.net/