在接下来的几周里,你会收到我的奖励邮件,因为我准备启动我所采取的最大的行动。你会喜欢它的。(相信我,我已经进行了测试。
你们中的许多人给我发信息,对从哪里开始测试感到困惑。 就像软件中的其他东西一样,我们努力工作,建立抽象,使我们的工作更容易。但是,随着时间的推移,抽象的数量不断增加,直到唯一真正理解它的人是那些首先建立抽象的人。其他人只能接受这些术语、API和工具的表面价值,并努力使事情运转。
如果说我对代码中的抽象有什么看法,那就是抽象不是魔术,而是代码。如果说我对代码中的抽象有什么看法,那就是通过实践更容易学习。
这里有一个例子。
想象一下,一个不太有经验的工程师来找你。他们渴望学习,他们希望对自己的代码有信心,他们准备开始测试。他们已经准备好向你学习了,他们写下了一个术语、API和概念的清单,希望你能为他们定义。
- 断言
- 测试框架
describe/it/beforeEach/afterEach/test函数- Mocks/Stubs/Test Doubles/Spies
- 单元/集成/端到端/功能/可及性/验收/手工测试
所以.........
你能为那个初出茅庐的工程师拨出一些定义吗?你能解释一下断言库和测试框架之间的区别吗?或者说,对你来说,识别它们比解释它们更容易?
问题就在这里。你越是了解这些术语和抽象概念,你就越能有效地教他们。如果你能教他们,你也会更有效地 使用他们。
进入一个 "授人以鱼 "的时刻。你知道你可以编写你自己的断言库和测试框架吗?我们经常认为这些抽象的东西超出了我们的能力,但它们并不是。每一个流行的断言库和框架都是从一行代码开始的,接着是另一行,然后是另一行。**你不需要任何工具来写一个简单的测试。**这里有一个例子。
const {sum} = require('../math')
const result = sum(3, 7)
const expected = 10
if (result !== expected) {
throw new Error(`${result} is not equal to ${expected}`)
}
把它放在一个叫test.js 的模块中,然后和node test.js 一起运行,噗,你就可以开始相信math.js模块中的sum函数是按预期工作的。让它在CI上运行,你就可以得到信心,它不会因为代码库的变化而中断。🏆
一旦你理解了这些抽象的基本工作原理,你可能会想使用它们,因为你刚学会钓鱼,现在你可以去钓鱼了。我最喜欢的是Jest测试平台。它的能力惊人,功能齐全,允许我编写测试,让我有信心在修改代码时不会破坏东西。
我真的很期待我为你创造的东西。我认为这将有助于加速你对测试工具和抽象的理解,让你有机会从头开始实现一些部分。(有希望的)结果是什么?你可以开始编写可维护的测试,并在你的代码中日复一日地注入信心。
请继续关注。🎣
P.S. 试试这个:Tweet测试框架和断言库之间有什么区别?在我的课程中,我不仅会解释它,我们还会建立我们自己的测试框架!
P.P.S. 设置你的闹钟并告诉你的朋友!10月19日星期五,我的课程将以早鸟价格出售!这将是一个巨大的机会。它是巨大的。就像超过100个密集的视频一样巨大。认真地说,**让人们知道。**他们不会想错过这个。