Skip to content

状态验证

什么是状态?当前系统的属性或数据结构,验证的目的就是为了获取状态是否发生了变化
在这个过程中,测试不需要了解程序的内部逻辑,只需要关注程序的最终状态或数据结构是否符合预期 这样的好处在于,无论程序的实现细节怎样重构都不会影响测试的进行

就像这个例子

ts
class Counter {
    private count: number
    constructor() {
        this.count = 0
    }
    increment(): void {
        this.count++
    }
    getCount() {
        return this.count
    }
}

虽然它的状态存在于内部,但可以借用方法的形式将其取出

ts
test('', () => {
    const count = new Counter()
    count.increment()

    expect(count.getCount()).toBe(1)
})

后续无论 increment 的逻辑怎样变化,都不会影响到测试的执行

ts
increment() {
    this.count--
    this.count++
    this.count++
}