我需要一些帮助来编写一个测试打印输出的单元测试。这是我的代码:
import random
friends_list = ["Monica","Joey", "Pheobe", "Chandler", "Rachel", "Ross"]
Friend=random.choice(friends_list)
print(friend)
我如何测试以确保打印出“Friend”?
到目前为止我尝试过:
def test_friends():
friends.
不知道之后该做什么
您可以使用
unittest
模块编写单元测试以确保打印朋友的名字。
import unittest
from io import StringIO
import sys
import random
def get_print_output():
captured_output = StringIO()
sys.stdout = captured_output
friends_list = ["Monica", "Joey", "Pheobe", "Chandler", "Rachel", "Ross"]
Friend = random.choice(friends_list)
print(Friend)
sys.stdout = sys.__stdout__
return captured_output.getvalue().strip()
# Your test class
class TestPrintFriend(unittest.TestCase):
# Test method to check if the printed name is in the list of friends
def test_printed_friend(self):
printed_output = get_print_output()
friends_list = ["Monica", "Joey", "Pheobe", "Chandler", "Rachel", "Ross"]
self.assertIn(printed_output, friends_list)
if __name__ == '__main__':
unittest.main()
输出:
.
----------------------------------------------------------------------
Ran 1 test in 0.001s
OK