[英]Write a Unit Test for function without return value
我有一个 function 将链接作为输入,然后请求值,然后将它们放入可用列表中,这个 function 不返回任何内容,我如何为它们编写测试用例? 例如:
list = []
def myfunc(link):
[code block]
list.append(value)
一般用全局变量不太好。 我建议使用类似 class 的号码。例如:
class Whatevs:
def __init__(self):
self.list = []
def my_func(self,link):
[code block]
self.list.append(value)
然后在您的测试中,您可以执行以下操作:
instance = Whatevs()
instance.my_func()
assert instance.list == [whatever it should be]
另外,我建议阅读 PEP8。 它只是包含一些您可能会觉得有用的关于命名的内容
导入列表,清除它,运行 function 然后检查它的值:
from my_module import list, myfunc
def test_myfunc():
list.clear()
myfunc()
assert list == [1, 2, 3]
我认为它不是很干净,但这会起作用:我创建了一个新文件来将生产代码与测试代码分开。 我导入了列表(在我的代码中是 l)并对其进行了测试。 我的主.py:
from typing import Any
l = []
def myfunc(link: Any) -> None:
my_actual_value = "my_expected_value"
l.append(my_actual_value)
我的 main_test.py:
import unittest
import main
from main import myfunc
class TestMyFunc(unittest.TestCase):
def setUp(self) -> None:
main.l = []
def test_my_func(self) -> None:
# Given
some_link = "some_link"
my_expected_value = ["my_expected_value"]
# When
myfunc(some_link)
# Then
assert my_expected_value == main.l
def test_my_func2(self) -> None:
# Given
some_link = "some_link2"
my_expected_value = ["my_expected_value"]
# When
myfunc(some_link2)
# Then
assert my_expected_value == main.l
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.