我已编写此代码来检查字符串是否全部大写。如果是这样,则返回True,如果不是全部大写,则返回False。我需要为该解决方案运行单元测试,但遇到问题。
解决方案代码是否有更好或更简单的代码?如何对解决方案进行单元测试?我的尝试正确吗?如果不能,请您帮我吗?
def is_uppercase(x):
words = x.split("_")
for word in words:
if word == word.upper():
return True
else:
return False
is_uppercase("AM dONALD")
import unittest
import Capss # solution code file name
class TestCaps(unittest.TestCase):
def test_is_uppercase(self):
self.assertTrue("FF", msg=True)
if __name__ == '__main__':
unittest.main()
当我运行解决方案代码时,以大写形式传递参数或混合使用大小写,我得到了预期的True或False。但是,当我在单元测试中操纵值时,结果是相同的,没有任何变化。有帮助吗?
答案 0 :(得分:1)
这里:
def test_is_uppercase(self):
self.assertTrue("FF", msg=True)
您的测试中只有一个断言,但是您完全没有调用您声称要测试的实际“被测方法”。
您必须调用该方法,并检查预期结果,例如:
self.assertTrue(is_uppercase("UPPER"))
self.assertFalse(is_uppercase("lower"))
self.assertFalse(is_uppercase("Mixed"))
单元测试的重点是调用“生产代码”功能,并检查它们是否提供了预期的结果。
这里没有魔术,单元测试环境无法猜测您导入了Capps
,因为您魔术般地希望对is_uppercase()
进行测试!