Testing 如何在Codename One中模拟服务器/http请求以进行测试?
我想为我的代号为One的应用程序编写功能测试 要做到这一点,我需要能够模拟一些服务器响应,以便它们准确地返回特定测试所需的内容 我试图让发送HTTP请求的函数将ConnectionRequest作为参数,这样我可以注入一些东西来模拟网络延迟,然后用模拟响应调用回调 但是,当我尝试在单元测试的prepare方法中注入ConnectionRequest的mock时,它们仍然在应用程序启动后被注入,这对我的情况不起作用,因为我在应用程序启动时发送了HTTP请求Testing 如何在Codename One中模拟服务器/http请求以进行测试?,testing,codenameone,functional-testing,Testing,Codenameone,Functional Testing,我想为我的代号为One的应用程序编写功能测试 要做到这一点,我需要能够模拟一些服务器响应,以便它们准确地返回特定测试所需的内容 我试图让发送HTTP请求的函数将ConnectionRequest作为参数,这样我可以注入一些东西来模拟网络延迟,然后用模拟响应调用回调 但是,当我尝试在单元测试的prepare方法中注入ConnectionRequest的mock时,它们仍然在应用程序启动后被注入,这对我的情况不起作用,因为我在应用程序启动时发送了HTTP请求 是否可以在启动应用程序之前模拟Conne
是否可以在启动应用程序之前模拟ConnectionRequest或执行类似操作?您可以在模拟器中减慢连接速度,这将模拟设备上的慢速连接,或完全关闭连接以模拟没有internet连接。在模拟器中的模拟->网络下找到选项。将此设置更改为
慢速连接
或断开连接
,然后重新运行应用程序
指向错误的URL以模拟404错误
从服务器端代码返回不可读的数据以模拟IOException或NullPointer异常
执行此操作时,请确保网络监视器可见。您需要的大多数其他响应都可以在服务器端完成。以下是我最后要做的。如果有人需要一个自动测试的解决方案,我会发布这个帖子
HTTPRequestInterface
的接口,它公开了构造HTTP查询所需的方法HTTPRequest
的HTTPRequest接口的实现,它只是连接请求的包装器
HTTPRequestFactory
,它有一个名为Create
的静态方法和一个名为setMock
的方法。如果未设置mock,该类将创建一个普通的HTTPRequest
,如果设置了mock,则创建指定的mockConnectionRequest
替换为HTTPRequestFactory.create()
InitialSetup
,它有两个方法:setInitialization
,它接受要执行的Runnable
,和init
方法,它只运行Runnable
InitialSetup.init
需要一些努力,但模拟后端的自动化测试带来了信心,我认为这绝对值得 谢谢你的回答!但在这种情况下,我想要的是,例如,一个服务器端点可能会返回两个可能的响应,我想测试应用程序是否对每一个响应都能正常运行。由于功能测试是自动化的,所以我无法在服务器中硬编码响应。我正在寻找类似Angular的东西,基本上你会说:“对于这个自动化测试,期望这个HTTP请求,并用这个HTTP响应进行响应”。经过一些研究,我认为这在代号一中是不可能的。我们在代号一中没有类似的东西。不过,您可能能够破解一些JavaSE模拟框架来使用模拟器。