1.(列举一项不用单元测试的失败案例)说明什么是单元测试(单元测试是开发者编写的一小段代码,用于检验代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试适用于判断某个),再说明执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。执行单元测试也是为了对所有单独部分的行为建立信心,确信它们都和我们的期望一致。
2.在实际编程中该怎样做?a.需要使用一些断言(assertion);b.需要计划你的测试(其中包含了寻找边界条件,断言期望结果)
3.使用JUnit编写单元测试。首先,需要遵循一些命名规范:如有个creatAccount函数(方法),那么你的测试函数命名也许就该是testCreatAccount之类的。测试代码必须要做的以下几件事情:a.准备测试所需要的各种条件(创建所有必须的对象,分配必要的资源等等)。b.调用要测试的方法。c.验证被测试方法的行为和期望的是否一致。d.完成后清理各种资源。
4.JUnit中的各种断言:assertEquals、assertNull、assertSame、assertTrue、fail
5.JUnit框架,使用框架的最小要求。
例1:
import junit.framework.*;
public class TestSimple extends TestCase{
}
以上是JUnit 4以前的做法,在JUnit 4中我们可以用JAVA 5的新特性,元数据注释来使用JUnit:(注意在用新的框架时,JAVA的源代码级别必须设置在JAVA 5以上)
例2:
import static org.junit.Assert.*;
import org.junit.Test;
public class TestSimple{
}
6.正因为JAVA语言的特性。一个测试类可以包含一些测试方法;每个测试方法包含一个或多个断言语句。一个测试类也能调用其他测试类:单独的类、包、甚至完整的系统。这些可以通过创建test suite来取得。
例3:
import junit.framework.*;
public class TestClassOne extends TestCase{
}
默认的,因为使用了Java的反射机制,将会运行testAddition与testSubtraction方法。
例4:
import static org.junit.Assert.*;
import org.junit.Test;
public class TestClassOne{
}
在例4中,通过给构造方法传递String型参数,使得TestCase返回一个对命名测试方法的引用。有时,我们可能希望例3与例4中的事情同时发生,那么我们可以创建一个更高级别的测试来组合两个测试类(对于一个测试类也可以,就像上面的TestClassOne)
例5:
import junit.framework.*;
public class TestClassTop extends TestCase{
}
7.Per-method与Per-suite
8.JUnit与异常
9.Right-BICEP
10.考虑边界条件(CORRECT)
11.Mock对象