CherryPy 单元测试

2024-01-02 15:46 更新

Photoblog应用程序不断使用单元测试来检查以下内容 -

  • 新功能正常运行并符合预期。
  • 新代码版本不会破坏现有功能。
  • 缺陷是固定的并保持固定。

Python带有标准的unittest模块,提供不同的单元测试方法。

Unittest

unittest植根于JUnit,这是由Kent Beck和Erich Gamma开发的Java单元测试包。 单元测试只返回定义的数据。 可以定义模拟对象。 这些对象允许针对我们设计的界面进行测试,而不必依赖于整个应用程序。 它们还提供了一种在隔离模式下运行测试的方法,其中包括其他测试。

让我们用以下方式定义一个虚拟类 -

import unittest
class DummyTest(unittest.TestCase):
def test_01_forward(self):
dummy = Dummy(right_boundary=3)
   self.assertEqual(dummy.forward(), 1)
   self.assertEqual(dummy.forward(), 2)
   self.assertEqual(dummy.forward(), 3)
   self.assertRaises(ValueError, dummy.forward)
def test_02_backward(self):
dummy = Dummy(left_boundary=-3, allow_negative=True)
   self.assertEqual(dummy.backward(), -1)
   self.assertEqual(dummy.backward(), -2)
   self.assertEqual(dummy.backward(), -3)
   self.assertRaises(ValueError, dummy.backward)
def test_03_boundaries(self):
dummy = Dummy(right_boundary=3, left_boundary=-3,allow_negative=True)
   self.assertEqual(dummy.backward(), -1)
   self.assertEqual(dummy.backward(), -2)
   self.assertEqual(dummy.forward(), -1)
   self.assertEqual(dummy.backward(), -2)
   self.assertEqual(dummy.backward(), -3)

代码的解释如下 -

  • 应导入unittest模块,以便为给定的类提供单元测试功能。
  • 应该通过继承unittest来创建一个类。
  • 上面代码中的每个方法都以单词test开头。 所有这些方法都由unittest处理程序调用。
  • 测试用例调用assert/fail方法来管理异常。

将此视为运行测试用例的示例 -

if __name__ == '__main__':
unittest.main()

运行测试用例的结果(输出)如下 -

----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号