如何使用 Bottle 框架进行单元测试

Bra*_*don 5 python unit-testing bottle python-2.7

我有一些需要测试的 API 端点,但不知道从哪里开始。我正在使用 Bottle 框架,我正在测试的方法之一从请求中读取参数。如何在测试环境中模拟这个?

ker*_*son 5

如果您想访问正常的 Bottle 语法,请使用bodle进行单元测试。例子:

import bottle, unittest
from boddle import boddle


@bottle.get('/woot')
def woot():
  return bottle.request.params['name']


class TestIt(unittest.TestCase):
  def testWoot(self):
    with boddle(params={'name':'derek'}):
      self.assertEqual(woot(), 'derek')


if __name__=='__main__':
  unittest.main()
Run Code Online (Sandbox Code Playgroud)


Tim*_*ski 1

Bottle 没有 Flask 所具有的一些测试细节(请参阅此处)。但 Bottle 建议使用 WSGI 测试工具和常规单元测试框架 ( http://bottlepy.org/docs/dev/recipes.html#function-testing-bottle-applications )。您将无法访问 Bottle 语法或传递给模板的参数等,但您也不必实际运行单独的服务器。