【问题标题】:False is not true error?假是不是真的错误?
【发布时间】:2015-10-10 07:26:57
【问题描述】:

我正在尝试将全局定义设置为 True,但我总是收到一条错误消息“AssertionError: False is not True”

来自说明:'只有预期为常量的事物才应定义为全局变量。所有这些都是如此。

#global definitions
UP = True
DOWN = True
LEFT = True
RIGHT = True
dirs = [UP, DOWN, LEFT, RIGHT]

#a bunch of code follows here

这是我遇到的错误之一(对于 UP)。

self.assertTrue(isinstance(UP,Direction))
AssertionError: False is not true

我创建了一个名为 Direction 的单独类。此外,我必须创建一个属性,该属性必须是 Up、Down、Left 和 Right 之一,但我不知道该怎么做。

属性:值::str。必须是“UP”、“DOWN”、“LEFT”或“RIGHT”之一。

#Direction class
class Direction:

    value = dirs

【问题讨论】:

  • 什么是Direction,您为什么认为UP 属于这种类型?
  • @GregHewgill 表示UP必须是Direction类型。
  • 是的,我了解 isinstance() 的作用,但您的代码中哪里有任何名为 Direction 的东西?
  • isinstance(UP, Direction)`` returns False, and assertTrue(False)```引发AssertionError。这不是错误或错误。
  • @GregHewgill 我创建了一个名为 Definition 的类,我必须包含一个名为 value 的属性。上面更新了详细信息。

标签: python class global specifications definition


【解决方案1】:
如果 UP 是 Direction 的实例,

isInstance() 将返回 true。但 up 不是 Direction 的实例。它是一个布尔值。因此,isinstance(UP,Direction) 返回 false。

现在,您断言这是真的。但事实并非如此。因此断言错误,false 不正确。

【讨论】:

    【解决方案2】:

    assertTrue 更改为assertFalse

    当返回值为False时,您的测试预计会成功运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 2014-02-17
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      相关资源
      最近更新 更多