我很高兴地宣布,Moco 0.9.1发布了。
Moco是什么?
Moco是一个可以轻松搭建测试服务器的框架/工具/程序库。
变更
按照版本号来说,这是一个小的修复版本,但实际的修改一点都不少。
首先,这个版本增加了runner API,让我们可以自己在测试代码里控制Moco服务器的启停。最常见的做法是在集成测试的最初,启动一个服务器,结束之后关闭,下面是一个例子:
@Before
public void setup() {
HttpServer server = httpserver(port());
server.response("foo");
runner = runner(server);
runner.start();
}
@After
public void tearDown() {
runner.stop();
}
在配置API方面,增加了对proxy的批处理方法,我们可以一次性的代理一组URL,比如:
server.proxy(from("/proxy").to("http://remoteUrl/target"));
proxy还增加了一个playback的配置,它也是用来在本地存储远程服务器的内容,与failover不同的是,当本地内容可用时,它就不再访问远程服务器,换言之,它是本地优先的。
server.request(by(uri("/proxy_playback")))
.response(proxy("http://remoteUrl/target"), playback(path-to-local-playback)));
这次的发布对模板也进行了改进,增加了对模板变量的支持,你可以根据自己的需要定制模板内容:
server.request(by(uri("/template"))).response(template("${var}", "var", "TEMPLATE"));
这次发布还增加了一个全局配置选项:Response。它的作用是,给所有的应答添加一个同样的内容,比如HTTP头。它主要用于独立运行模式,模拟很多类似的请求:
[
{
"response" : {
"headers" : {
"foo" : "bar"
}
},
"include": "src/test/resources/settings/foo.json"
}
]
本次发布修正了Moco存在的一些问题,比如HTTP连接关闭,内容验证,服务器完全关闭等问题,让Moco的质量更上了一个台阶。本次发布还有一个重大的调整,采用Proguard将Standalone的JAR规模大幅度缩小,上一次发布Moco的Standalone包有8M多,而这次只有不到5M。
更多的细节请参考ReleaseNotes。
感谢
感谢崔鹏飞,协助发现修复了HTTP连接关闭的问题。
感谢黄云坤,实现Proguard压缩Standalone JAR包。
感谢Marcin Grzejszczak,协助发现并修复了服务器完全关闭的问题,并贡献了gmoco的脚本。
引用来自“翟志军”的评论
这个库真心不错,如果文档能再详细一些就更好了。