59

我需要创建一个用于单元测试的假帮助器类(注入到测试类中)。有没有办法在此类中使用 TestCase 断言?

我想将断言用于 Fake 类执行的一些常见检查。就像是:

class FakeFoo(object):

  def do_foo(self, a, b):
    assertNotNull(a)
    ...
4

2 回答 2

72

您可以创建一个实例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.

于 2013-08-06T15:33:51.397 回答
0

您可以使用 Pytest 或 Nosetest。虽然我不知道他们是否有 'assertNotNull' 功能。我知道他们可以简单地使用“断言”来进行断言。或者你可以使用 assertpy 或 ptest 之类的东西,如果你喜欢,你可以在 github 上搜索它们。

于 2019-08-28T07:47:35.087 回答