codecamp

CherryPy 单元测试

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


CherryPy 连接到数据库
CherryPy 功能测试
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

CherryPy 一个工作应用程序

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }