有没有一种方法可以在TestCase之外使用Python单元测试断言?

11 浏览
0 Comments

有没有一种方法可以在TestCase之外使用Python单元测试断言?

我需要创建一个假的辅助类用于单元测试(注入到被测试类中)。是否有什么方法可以在这样的类中使用TestCase断言?

我想使用断言来执行Fake类执行的一些常见检查。像这样的东西:

class FakeFoo(object):
  def do_foo(self, a, b):
    assertNotNull(a)
    ...

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以使用Pytest或Nosetest进行测试。虽然我不知道它们是否具有“assertNotNull”函数。我知道它们可以简单地使用\'assert\'进行断言。或者,您可以使用类似assertpy或ptest等工具,如果您愿意,您可以在github上搜索它们。

0
0 Comments

你可以创建一个unittest.TestCase()实例并在其上调用方法。

import unittest
tc = unittest.TestCase()
tc.assertIsNotNone(a)

在旧版 Python(Python 2.7 及更早版本、3.0、3.1)中,你需要传递现有类TestCase类中的方法名称(通常是子类上的测试方法名称)。在这种情况下可以使用__init__

tc = unittest.TestCase('__init__')
tc.assertIsNotNone(a)

然而,你可能正在寻找一个好的Mock库。使用mock将是一个不错的选择。

另一种选择是使用pytest,它增强了 assert 语句,提供与unittest.TestCase()断言方法相同或更多的上下文;你只需编写assert a is not None

0