测试驱动开发

我编写了这段代码来检查字符串是否全部大写。如果是,则返回 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。但是,当我操作单元测试中的值时,结果是一样的,没有任何变化。有什么帮助吗?


隔江千里
浏览 192回答 1
1回答

慕娘9325324

这里: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"))单元测试的重点是调用您的“生产代码”功能,并检查它们是否提供了预期的结果。这里没有魔法,unittest 环境无法猜测您是导入的,Capps因为您神奇地想要进行is_uppercase()测试!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python