如何断言类型等于给定值

新手上路,请多包涵

我正在为一个方法编写测试,我想验证该方法是否返回特定类型。但是,当我尝试这样做时,出现错误。

 def search_emails(mail):
  data = mail.uid('search')
  raw_email = data[0][1]
  return raw_email

类型(raw_email)是: <class 'bytes'>

当我运行这个测试时:

 def test_search_emails_returns_bytes():
  result = email_handler.search_emails(mail)
  assert type(result) == "<class 'bytes'>"

我收到这个错误。我如何陈述断言才能使测试通过?还是有更好的方法来编写测试?

 E       assert <class 'bytes'> == "<class 'bytes'>"

原文由 analyticsPierce 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 482
2 个回答

您可以使用 is 运算符来检查变量是否属于特定类型

my_var = 'hello world'
assert type(my_var) is str

原文由 Zac Crites 发布,翻译遵循 CC BY-SA 3.0 许可协议

您需要使用 isinstance,它是一个用于类型检查的内置函数

def test_search_emails_returns_bytes():
  result = email_handler.search_emails(mail)
  assert isinstance(result, bytes)

原文由 Agustin Castro 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题