欢迎回来｡
让我们继续进行单元测试｡
现在, 我注意到一件事, 在查看文档时, 我们实际上有一个assert实例｡
所以我们实际上可以不用断言真, 而是用断言作为实例, 我们给予A和B,
同样, 所有这些断言方法, 没有一个是正确的, 你可以用任何一个作为工具来改进你的代码｡
所以在我的例子中, 让我们把它改为断言为实例, 并修复它｡
就像这样｡
所以只要稍微干净一点｡
让我们看看这是否有效｡
好吧, 我会的
一切都还不错｡
好吧, 让我们再试一次破解密码｡
所以一切都很顺利｡
但如果我们做些不同的事呢？
如果我们做了呢？
比如说, 再加一个测试, 我们就说test｡
也做些事情｡
通常, 您需要更好地命名这些函数, 以便它们更具描述性｡
但在我们的例子中, 这是好的, 只是为了让我们看看他们这次是如何工作的｡
让我们来做测试ram将要相等｡
一个都没有怎么样？
现在如果我运行这个, 让我们再运行一次这个代码｡
顺便说一句, 你可能注意到我在测试中是如何复制代码的, 你可能会想,
我们能不能简单一点？
而不是重复自己的话｡
你完全可以做到这一点, 使事情变得容易得多｡
但是, 当涉及到测试时,
因为它们不会进入生产环境, 而且这只是出于开发目的, 所以您确实希望测试易于阅读, 以便其他人理解您的测试｡
因为在测试方面, 可读性是非常非常重要的｡
我们并不关心不重复我们自己, 并使我们的代码有效, 漂亮和小｡
所以我喜欢写一些描述性很强的测试｡
好的, 在这里, 我们假设self, 点, 断言等于和｡
嗯, 这应该是什么？
在本例中, 我预计会出现值错误｡
所以我们开始吧｡
我预计结果将是一个值错误｡
我将保存并运行测试｡
好吧, 我去透透气｡
它说这是一个进入参数的类型错误｡
必须是字符串｡
我给它一个非类型｡
好吧, 我会的
所以这不是正确的处理, 因为它不能处理int, 我们得到了一个类型错误｡
那我们该怎么解决这个问题？
如果我们在参数中得到一个非类型, 我们如何调整它？
首先, 我们给予它一个默认参数｡
假设默认参数为零｡
如果我运行这个｡
再来一次｡
我仍然得到错误｡
好吧, 我们还没修好｡
论证必须是严格的｡
一个bi似的对象或一个数, 而不是非类型｡
所以我们仍然不检查非类型｡
所以我们可以做的另一件事是说｡
若数｡
所以我们要检查是否有数值｡
因为记住, 如果它有任何类型的数字或者任何值, 它会默认为true, 但是如果它是非类型的,
它会变成false.
所以在这里, 如果number我们可以说返回这个｡
别的｡
否则, 我们会回来的｡
-我不知道
输入数字｡
所以我会这样说, 现在改变一下, 因为现在我们应该期望, 请在我的测试中输入数字, 我会说,
断言等于｡
那个结果｡
马上就要｡
请输入数字｡
如果我现在运行我的测试, 让我们清除这一点｡
哦｡
看起来我在0秒内跑了两个测试, 但我们有三个测试, 这是因为｡
你看这里, 我给我的名字一样｡
请记住, 如果您使用相同的名称, 那么它只会运行其中一个｡
因此, 请确保所有测试名称都是唯一的｡
所以我要运行这个｡
好吧, 我会的
进行了三次测试, 一切正常｡
非常, 非常酷｡
所以你可以看到我们是如何从一个非常简单的函数开始的,
我们开始捕捉这些错误, 并开始意识到我们的函数是多么的简单, 如果我们收到一个错误的输入｡
喜欢｡
字串或非型别｡
好吧, 我们一这么做, 我们的功能就失效了｡
所以通过使用测试和作为测试和打破的东西, 我能够改善这个函数｡
所以它更耐用, 所以现在它在生产中更好地工作｡
对不对？
这就是测试的力量｡
它允许我们检查我们可能犯过的任何错误, 因为也许我们一开始就不会想到这样做｡
但是通过在代码旁边编写测试, 我们能够改进函数｡
现在, 我想补充的最后一件事｡
让我们在测试上再加一个, 如果测试参数只是一个空字符串呢？
我们该走了｡
请输入一个数字｡
所以如果我运行这个｡
好吧, 我会的
四个测试都通过了, 所以看起来我们的代码工作得很好｡
最后, 我想指出几件事｡
我在这里打电话给Unit Test Main｡
但这与实际无关｡
文件｡
我们写的, 也就是主文件｡
如果我重命名它, 那么我们转到我的桌面｡
然后说, 我想将这个变更为｡
脚本, 点饼｡
现在让我们用崇高的文字来打开我的箱子｡
我们回到这里
所以你可以看到主圆周率, 已经不存在了｡
它要求我保存｡
所以这是一个完全不同的文件｡
现在, 如果我在这里编写脚本, 只需将所有实例更改为脚本｡
如果我保存这个然后逃跑｡
这仍然可以在Main上运行单元测试, 只是简单地说, 嘿, 在这里运行所有的测试｡
有一件事,
这是我们之前讨论过的一种常见做法, 如果这是正在运行的主文件, 你会说运行这个文件, 因为我们并不想把测试main或类似的东西导入到其他文件中｡
这些是单独的文件, 只应在运行测试时运行｡
所以我可以说, 如果下划线, 下划线名称｡
相等｡
下划线下划线main｡
然后运行这段代码｡
所以现在如果我保存这个然后逃跑｡
你去那里｡
一切都还在运转｡
但现在我确保这是一个测试文件｡
我只会运行这个代码, 如果它是正在运行的文件, 如果它是正在运行的主文件｡
所以这是一个标准的方法, 你可以用单元测试模块来完成你的单元测试｡
让我们休息一下, 在下一个视频中详细介绍一下测试｡