我们正在尝试测试向第三方发送请求的前端功能 单击按钮时的API。单击将触发内部API调用 我们的Flask应用程序,它会将此转换为请求 ThirdPartyApi。
我们尝试使用Splinter,Flask Testing和PhantomJS进行测试。因为我们
不想要实际的API,我们想要删除那个方法
执行此请求。但是,存根似乎不起作用和实际
执行http调用。我们怀疑它与差异有关
测试上下文和应用程序上下文之间,但我们无法解决它
使用Flask提供的app_context()
。
有人知道如何解决这个问题吗?以下是测试的简化版本 我们正在使用的代码。
from splinter import Browser
from flask_testing import LiveServerTestCase
from unittest.mock import patch
class ClickButtonTest(LiveServerTestCase):
def test_click_button(self):
browser = Browser('phantomjs')
browser.visit(self.get_server_url() + "/")
with self.app.app_context():
@patch("app.lib.ThirdPartyApi")
class FakeThirdPartyApi:
def some_action(self, param):
return True
browser.find_by_text("Click me!").click()
assert browser.is_text_present("The button is clicked :)")