单元测试 - 在 django 中对执行对外部服务调用的视图进行单元测试时有什么好的做法



我们有这样的视图:

from fblib import Facebook
def foo(request):
    fb = Facebook( settings.facebook )
    data = fb.get_thingy()
    return render_to_response( .. , data, .. )

测试这一点的好方法是什么?由于视图本身获取资源,我不确定如何嘲笑Facebook。在我看来,一个替代方案是创建一个假的Facebook服务器,并在设置中提供连接详细信息。所以我们得到了一个看起来像这样的单元测试:

from fakebook import FakeFacebookServer
class ViewsFooTests(TestCase):
    def set_up( self ):
        self.facebook = FakeFacebookServer().start()
    def test_foo_connect( self ):
        response = self.client.get('/foo')
        self.assertEquals( response.status_code, 200 )

我遇到的问题是,让一个假的Facebook服务器看起来很麻烦。理想情况下,我宁愿能够模拟Facebook.get_thingy方法。建议?

您可以从测试中修改视图模块,以模拟您的库:

# tests.py
import myapp.views
...
    def setUp(self):
        myapp.views.Facebook = FaceBookMock

相关内容

  • 没有找到相关文章

最新更新