【发布时间】:2019-11-27 10:06:12
【问题描述】:
我正在与一位同事进行一些自动化测试,我们想知道我们的方法是否存在任何差异。
我们有一个返回 HTTP 响应对象的方法。有时,它可能会返回 None,但通常是一个对象。
原代码为:
self.assertTrue(response)
但我觉得它可能更具可读性:
assert response is not None
我研究了关于真实性的文档中的差异,所以我知道返回 true 的东西不一定是 None。但是,在大多数情况下,两者都可以工作。许多现有的测试都在断言 true 而不是断言 not none。
有什么理由可以说明一种技术比另一种更有效吗?
【问题讨论】:
-
我个人认为
is not None更精确,因此应该首选。我不会使用self.assertTrue,因为这只是误导。如果您想要更“懒惰”的断言,请改用assert response。但这只是我个人的看法。 -
这能回答你的问题吗? if A vs if A is not None:
-
@Tim:这有点相关,但如果 A 为真与 A 不是无的话。我知道差别不大,或者可能有
-
我不明白“尽管如果 A 为真与 A 不是无”在你的最后评论中。实际上有很大的不同,这取决于
response来自什么类:) -
我的回答能回答你的问题吗@CraigBrett?