为了账号安全,请及时绑定邮箱和手机立即绑定

测试驱动开发

测试驱动开发

隔江千里 2021-10-10 16:10:04
我编写了这段代码来检查字符串是否全部大写。如果是,则返回 True,如果不是全部大写,则返回 False。我需要为此解决方案运行单元测试,但我被卡住了。解决方案代码是否有更好或更简单的代码?如何对解决方案进行单元测试?我的尝试正确吗?如果没有,你能帮我吗?我的解决方案代码def is_uppercase(x):    words = x.split("_")    for word in words:        if word == word.upper():            return True        else:            return Falseis_uppercase("AM dONALD")尝试的单元测试import unittestimport Capss       #  solution code file nameclass TestCaps(unittest.TestCase):    def test_is_uppercase(self):        self.assertTrue("FF", msg=True)if __name__ == '__main__':    unittest.main()当我运行解决方案代码,传递所有大写或混合大小写的参数时,我得到预期的 True 或 False。但是,当我操作单元测试中的值时,结果是一样的,没有任何变化。有什么帮助吗?
查看完整描述

1 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

这里:


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()测试!


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信