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

我正在用Python创建一个Web API,该Web API与其他Web API(Facebook,Twitter等)进行通信,并与我的API同时编程的其他Web API进行通信。

由于我喜欢使用测试驱动的开发,因此我想知道如何将TDD应用于我的Web API。我知道模拟,但是如何模拟其他API以及如何模拟对我的API的调用。

更新1:指定我的问题。是否可以在上述条件下使用TDD创建Web API。如果是的话,有没有我可以在Python中使用的库。


慕森卡
浏览 138回答 1
1回答

梵蒂冈之花

由于您的问题涉及面很广,因此我仅介绍您:为了在python中进行模拟,有一个名为Mock的库,文档非常详细使用Mock进行Python单元测试您最喜欢的Python模拟库是什么?下面是使用模拟到模拟的一个简单的例子中的python-twitter上的GetSearch方法:test_module.pyimport twitterdef 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 resultstest_my_module.pyfrom unittest import TestCasefrom mock import patchimport twitterfrom my_module import get_tweetsclass 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。希望能有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python