我如何修复AssertionError: !=None从程序运行测试用例



下面是我的程序的主代码,其中包括三个函数:

import unittest
def main():
#initial roster#
brave_roster = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266",
}

#我的代码:

def lookup_player(brave_roster,name):
name = input("Enter the name of the player you want to lookup:n")
if name in brave_roster:
print("Here are the", [name], "stats:", brave_roster[name])
else:
print("That player does not exist.")
def add_player_to_dict(brave_roster,name,stats):
name = input("Enter the name of the player you want to add:n")
if name not in brave_roster:
stats = input("Please add stats:n")
brave_roster[name] = stats
brave_roster.update([(name, stats)])
print("Here's", [name],"'s stats:n")
for name, stats in brave_roster.items():
print(name, ':', stats)
else:
print("That player is already on our roster.")
def delete_in_dict(brave_roster, name):
name = input("Enter the name of the player you want to remove:n")
if name in brave_roster:
del brave_roster[name]
return brave_roster
else:
print("n uh typo?", [name], "does not play for us")
if __name__ == '__main__':
print("t ***  Braves Stats!  ***n")
print("Welcome to My Braves Stats!")

brave_roster = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266",
}
name = main()
choice = input("Please type your choice number:")
if (choice == "1"):
lookup_player(brave_roster,name)
elif (choice == "2"):
add_player_to_dict(brave_roster,name)
else: 
(choice == "3")
delete_in_dict(brave_roster,name)


print("nThanks for using my Braves Stats.")

下面是我检查代码的测试用例:

class TestDictFunctions(unittest.TestCase):
def test_search_player_success(self):
test_dict = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"
}
actual = test_dict["Austin Riley"]
expected = lookup_player(test_dict, "Austin Riley")
self.assertEqual(actual, expected)
def test_search_player_no_result(self):
test_dict = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"
}
actual = "N/A"
expected = lookup_player(test_dict, "Ronald Acuna")
self.assertEqual(actual, expected)
def test_add_player_sucess(self):
test_dict = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"
}
actual = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266"
}
expected = add_player_to_dict(test_dict, "Ronald Acuna", "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266")
self.assertEqual(actual, expected)
def test_add_player_duplicate(self):
test_dict = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"}
actual = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273", "Austin Riley(2)": "AB: 350, R: 20, H: 120, HR: 5, AVG: 0.214"}
expected = add_player_to_dict(test_dict, "Austin Riley", "AB: 350, R: 20, H: 120, HR: 5, AVG: 0.214")
self.assertEqual(actual, expected)
def test_delete_player_sucess(self):
test_dict = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"}
expected = {}
actual = delete_in_dict(test_dict, "Austin Riley")
self.assertEqual(actual, expected)
def test_delete_word_no_result(self):
test_dict = {"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"}
expected = test_dict
actual = delete_in_dict(test_dict, "Shohei Ohtani")
self.assertEqual(actual, expected)

#uncomment to run tests
unittest.main()

一旦我执行代码,我得到这样的消息:

test_add_player_success (main

).TestDictFunctions.test_add_player_sucess)Traceback(最近一次调用):文件"/用户/射线/文档/DSCI HW/作业1/test_名册.py",第100行,在test_add_player_success自我。实际assertEqual(预计)AssertionError: {'Austin Riley': 'AB: 615, R: 90, H: 168,[78字符]266'}!=无

这可能是什么原因?

def test_add_player_sucess(self):
test_dict = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273"
}
actual = {
"Austin Riley": "AB: 615, R: 90, H: 168, HR: 38, AVG: 0.273",
"Ronald Acuna": "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266"
}
expected = add_player_to_dict(test_dict, "Ronald Acuna", "AB: 467, R: 71, H: 124, HR: 15, AVG: 0.266")
self.assertEqual(actual, expected)

函数add_player_to_dict()没有任何return语句。因此默认返回None

因此expected为None。

因此assert失败。

最新更新