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

使用测试驱动的开发对Web API进行编程

使用测试驱动的开发对Web API进行编程

慕森卡 2021-03-05 15:11:52
我正在用Python创建一个Web API,该Web API与其他Web API(Facebook,Twitter等)进行通信,并与我的API同时编程的其他Web API进行通信。由于我喜欢使用测试驱动的开发,因此我想知道如何将TDD应用于我的Web API。我知道模拟,但是如何模拟其他API以及如何模拟对我的API的调用。更新1:指定我的问题。是否可以在上述条件下使用TDD创建Web API。如果是的话,有没有我可以在Python中使用的库。
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

由于您的问题涉及面很广,因此我仅介绍您:

  • 为了在python中进行模拟,有一个名为Mock的库,文档非常详细

  • 使用Mock进行Python单元测试

  • 您最喜欢的Python模拟库是什么?

下面是使用模拟到模拟的一个简单的例子中的python-twitter上的GetSearch方法:

test_module.py


import twitter



def get_tweets(hashtag):

    api = twitter.Api(consumer_key='consumer_key',

                      consumer_secret='consumer_secret',

                      access_token_key='access_token',

                      access_token_secret='access_token_secret')

    api.VerifyCredentials()

    results = api.GetSearch(hashtag)

    return results

test_my_module.py


from unittest import TestCase

from mock import patch

import twitter

from my_module import get_tweets



class MyTestCase(TestCase):

    def test_ok(self):

        with patch.object(twitter.Api, 'GetSearch') as search_method:

            search_method.return_value = [{'tweet1', 'tweet2'}]


            self.assertEqual(get_tweets('blabla'), [{'tweet1', 'tweet2'}])

您可能应该在单元测试中模拟整个Api对象,以便仍然调用它们unit tests。希望能有所帮助。


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

添加回答

举报

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