1.使用Junit的最佳实践:
a) 新建一个名为test的source folder,用于存放测试类源代码
b) 末表类与测试类应该位于同一个包下面,这样测试类中就不必要导入源代码所在的包,因为他们位于同一个包下面
c) 测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为TestCalculator或Calculator,虽然不是必须的,但是要符合规范。
2.Junit的口号:keep the bar green to keep the code clean。
3.No reflection ,no most frameworks.
4.Junit:单元测试并不是证明你是对的,而是证明你没有错。
5.测试用例(TestCase)是单元测试的一个很重要的方面
6.单元测试主要是用来判断程序执行结果与自己预期的结果是否一致。
7.测试类必须要继承与TestCase父类(junit3.8是显式的继承,junit4之后是用注解的方式了)
8.在junit3.8中,测试方法需要满足如下原则:
a) Public
b) Void
c) 无方法参数
d) 方法名字必须以test开头
9.TestCase之间一点个要保持完全的独立性,不允许出现任何的依赖关系
10.关于setUp与tearDown方法的执行顺序
a) setUp
b) testXxx
c) tearDown
备注:分析Junit源码切入点应该是TestCase类。Junit的源代码非常好,使用了多种设计模式结合。
1.Junit 4全面引入了Annotation来执行我们编写我们的测试
2.Junit 4 并不要求测试类继承TestCase父类
3.在一个测试类中,所有被@Test注解所修饰的public void 方法都是test case,可以被Junit所执行
4.虽然Junit4并不要求测试方法以test开头,但是我们最好还是遵循这个规则,见名知意。
5.在Junit4中,通过@Before注解是信啊与Junit3.8中setUp方法同样的功能,通过@After注解实现与Junit3.8中的tearDown方法同样的功能
6.在Junit 4中可以使用@BeforeClass与@AfterClass注解修饰一个public static void no-args的方法,这样被@BeforeClass注解所修饰的方法会在所有测试方法之前执行,被@AfterClass注解所修饰的方法会在所有测试方法执行之后 执行。
7.@ignore注解可以用于修饰测试类与测试方法,当修饰测试类时,表示忽略掉类中的所有测试方法;当修饰测试方法时,表示忽略掉该测试方法。
8.Junit 在TestCase类中应用了模板方法模式:
public void runBare() throws Throwable{
setUp();
try{
runTest();
}
finally{
tearDown();
}
}
9.Junit在TestCase类中应用了适配器(Adapter)模式:代码同上,体现在runTest()方法中。
10.适配器模式(Adapter Pattern)主要分为三种:
a) 基于类的继承方式
b) 基于对象组合方法
c) 缺省的适配器模式(AWT、Swing事件模型所采用的模式)
11.我们学习过的设计模式:
a) 单例模式(Singleton)
b) 策略模式(Strategy)
c) 代理模式(static proxy、dynamic proxy)
d) 观察者模式(Observer)
e) 装饰模式(Decorator)
f) 工厂模式(static factory、factory method、abstract factory)
g) 模板方法模式(Template Method)只能使用抽象类来实现
h) 适配器模式(缺省适配器、基于继承的适配器、基于组合的适配器)
i) 命令模式(Command)
j) 组合模式(Composite)