我是否需要创建要用unittest测试的类的实例? - python

说我有:

class Calculator():
    def divide (self, divident, divisor):
        return divident/divisor`

我想使用Python 3.4 unittest模块测试其除法。

我的代码是否必须具有类的实例化才能进行测试?即,以下测试类中需要的setUp方法:

class TestCalculator(unittest.TestCase):
    def setUp(self):
        self.calc = src.calculator.Calculator()
    def test_divide_by_zero(self):
        self.assertRaises(ZeroDivisionError, self.calc(0, 1))

python大神给出的解决方案

因为它具有self参数,所以它是一个实例方法,因此您需要一个实例。

如果没有self,则可以将其设为@classmethod@staticmethod,请参见what's the difference。

由于您不使用self参数,因此它可能不应该是实例方法。但是您可以只具有一个函数而根本没有类:

# calculator.py

def divide(dividend, divisor):
    return dividend / divisor