如何设置在方法中检查方法的unittest方法?

2024-10-01 02:29:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在用unittest练习我的代码测试技能,我在知识中发现的一个漏洞是如何测试一个方法,这个方法调用它内部的另一个方法,它需要属性。 例如:

def calc_balance(usr_input)
    new_balance = total_income() - usr_input 
    return new_balance

def total_income(value): 
    return value 

我想用unittest进行测试,例如:如果usr\u input=100,我的total\u income()方法返回50,那么如果new\u balance等于50,测试将通过

我知道如何为calc\u balance()编写一个分配usr\u inputs值的测试(这很简单),但我不知道如何将值传递给total\u income()(在我将要编写的unittest方法中)

如果有人能帮我。。。我找不到任何有用的信息。。。我假设我可能需要使用seUp()方法或者类似的方法

编辑:

# main.py
def calc_balance(value):
    balance = calc_income() - calc_expance() + value
    return balance

def calc_income(list_of_incomes):
    return float(sum(list(list_of_incomes)))

def calc_expance(list_of_expances):
    return float(sum(list(list_of_expances)))

# test.py

import unittest

import main

class TestMain(unittest.TestCase):
    def test_calc_income(self):
        self.assertEqual(main.calc_income([1,2]), 3)

    def test_calc_expance(self):
        self.assertEqual(main.calc_expance([0,0]), 0)

    def test_calc_balance():
    self.assertEqual(main.calc_balance(1), 4) 

如您所见,我希望test\u calc\u balance()将不同的值传递给calc\u balance(),并测试calc\u balance()的功能


Tags: 方法testselfreturnvaluemainusrdef