【发布时间】:2014-08-20 00:31:04
【问题描述】:
我正在尝试找出如何创建单元测试来检查函数内变量的值?我有下面的代码,只有在我得到的变量是全局变量时才有效,但这不是我想要做的。我只想在主函数中测试变量的值。我该怎么做呢?这是我的代码:
运行代码
def main():
#Declare Variable Here
Gold = 4000
def treasure_chest(amount):
print("I have ",amount," Gold!")
这是我的测试套件
from Functions import main
import unittest
class MyTestCase(unittest.TestCase):
def test_valueContains(self):
value = Gold
self.assertEquals(4000, value)
if __name__ == '__main__':
unittest.main()
【问题讨论】:
-
这有点反模式。测试应将代码视为黑盒。例如“如果给定适当的输入,它是否提供正确的输出”?原因之一是代码的实现方式可能会发生变化。只要它完成与以前相同的工作,单元测试就不应该关心它的如何。一个人为的例子是将宝藏分成可能具有不同价值的黄金和宝石。
treasure_chest函数可以正确计算该值,但您的单元测试可能仍会失败。
标签: python function unit-testing assertions