0%

cs61b系列day4——TestDebug

Java中JUnit的使用和测试的思想

概要

  • Reading3.1
    • JUnit模块的基础使用
    • Test-Driven Development(TDD)的思想
  • Lab3
    • 在IntelliJ中使用JUnit
    • 链表的反转
    • A Debugging Mystery:很有意思,涉及到java常量池、==操作符和.equal方法
  • Project 1B
    • 回文字符串的检测
    • 首次尝试TDD(注意步鲰)

概念

  1. Interface

    Proj1b中完全没有讲Interface的概念,只讲了使用。感觉Interface有点像C语言中的函数声明,但这些函数可以有多种实现。比如Proj1b中Deque Interface就可以有两种实现:ArrayDeque与LinkedListDeque。Interface提供了给用户的接口,用户不用关心如何实现。
  2. @Override

    加上是个好习惯
  3. Recursive Helper Methods

    在一些本身不是递归定义的数据结构中比较常用,如数组。

一些想法

  1. TDD
    1. 先写测试
    2. 算法思路构建
    3. 写注释帮助思考
    4. 编写分方法
  2. 将只含有方法的类的实例传入函数
    之前从来没遇见过。在C中我通常的做法是直接在函数内部调用其它函数,而不是通过传递函数指针的方式。
  3. Testing Philosophy
    了解测试工具的优缺点,选择正确的测试工具
    • Autograder
    • JUnit Tests
    • Integration Testing

拓展

  1. TDD is dead
  2. Unit Tests Are Waste
  3. Response