【发布时间】:2021-06-24 16:39:08
【问题描述】:
我有一个简单的文件程序(从函数中删除代码,因为它与问题无关):
import random
import sys
def poziom(level):
*does something and returns something*
def gra(chance):
*does something and returns something*
def save(name):
*does something and returns something*
while True:
*does something in loop, executing other functions above*
我正在尝试针对其功能之一运行一个简单的单元测试:
import unittest
from my_game import save
from my_game import gra
from my_game import poziom
class TestSum(unittest.TestCase):
def test_list_int(self):
"""
Test that it can sum a list of integers
"""
check = "Test string"
result = poziom(check)
self.assertEqual(result, 0)
if __name__ == '__main__':
unittest.main()
但是,此测试不是运行 poziom() 函数,而是运行整个文件,还执行 While True 语句后面的代码。 我做错了吗?在这种情况下是否可以编写一个只检查一个函数和它返回的值的测试?
【问题讨论】:
-
如果您将
while True:放在if __name__ == "__main__":语句中,可以解决问题吗?否则,仅导入该文件将执行该循环的内容。
标签: python unit-testing testing