我如何进行此python测试?

时间:2020-07-28 16:22:49

标签: python unit-testing testing mocking

我在类内有一个函数,该函数调用其他函数并做一些事情,直到获得两个变量 A B

Class NumberLogic:
    def compare():
    #do stuff_
    A=#do stuff__
    B=#do stuff___
    if A<B:
        return 1
    else:
        return 2

我想测试此函数compare()但直接从A和B提供值,因此仅测试if条件,我不确定是否可行,其余代码是否可以模拟,因此在我调用时像

assert 1 == NumberLogic.compare()

1 个答案:

答案 0 :(得分:1)

您可以这样重写代码:

Class NumberLogic:
    def compare(self):
        A = self._get_A()
        B = self._get_B()
        return self._compare(A, B)

    def _get_A(self):
        # do stuff
        return A

    def _get_B(self):
        # do stuff
        return B

    def _compare(self, A, B):
        if A<B:
            return 1
        else:
            return 2

这样,您可以编写代码以仅检查_compare

注意:以下划线开头的函数表示它是仅由函数本身使用的内部方法。

您也可以写:

def _compare(self, A, B):
    if A<B:
        return 1
    return 2

是同一回事