[Java]测试

2016-09-03 13:38:01 +08:00
 andrewzhou

现在做的项目测试超级慢,主要原因是要大量访问外部网络获得 json 数据。一个测试下来需要两个小时。 分析了一下 1 ,如果网络访问稳定,测试时间会缩短非常多 2 ,另外获取的 json 基本上内容不会变化(暂时先认为不会变好了) 3 ,访问网络是被测试程序主动调用的,并且是通过继承一个抽象类,抽象类实现了网络访问部分的功能( doGet / doPost ),子类是对获取数据的解析。

现在是想在测试的时候,替换掉 doGet / doPost 函数,看本地是否存储之前已经得到的数据,如果有直接返回,如果没有就继续访问网络。 本来以为 PowerMock 之类的可以做到但是看了半天没找到能满足我需求的 api 。 求助各位大神是不是有其他工具或者是 PowerMock 能够做到这个功能。

doGet / doPost 这部分不是测试的目标,但是不希望修改这部分代码, 另外继承自抽象类的具体之类比较多 :|, 每个之类都会构造大量实例。

3081 次点击
所在节点    Java
9 条回复
crytis
2016-09-03 15:38:52 +08:00
要不然把数据写死,写到代码里。要不然弄一个 mock 接口, url 写到不同的配置文件里
andrewzhou
2016-09-03 15:43:19 +08:00
@crytis 数据量预估有 100M + 而且会定期更新, mock 接口 url 写到不同的配置文件是什么意思。 我现在是想在本地搞一个类似于缓存的东西,并且有选择的截断网络访问直接从缓存出内容。来加快测试速度,之前把 url 改了写了一个类似于代理的东西速度加快了很多,但是这种方式要改被测试部分
crytis
2016-09-03 15:59:46 +08:00
@andrewzhou 一个接口 100MB ?
andrewzhou
2016-09-03 16:15:19 +08:00
@crytis 测试的时候需要从网络获取的数据总量有 100M+, 这个就是头疼的地方 网络很慢,容易超时,拿到的数据也不一定完整,导致测试跑一遍花很多时间
andrewzhou
2016-09-03 16:45:50 +08:00
看了半天文档 似乎 JMockit Delegates: specifying custom results 能做这件事,继续研究
johnzh
2016-09-03 17:02:18 +08:00
搜下 wiremock 或者 mock server 看看呢
zacard
2016-09-03 20:14:45 +08:00
你需要 mockito
zjqzxc
2016-09-04 01:33:39 +08:00
改测试机上的 hosts 指向本机或者一个局域网的机器?
chocotan
2016-09-04 15:57:21 +08:00
mockito+1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/303646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX