「原创声明:保留所有权利,禁止转载」
上期讲过了moco API 模拟框架视频讲解(上)、moco API 模拟框架视频讲解(中),本期分享内容是mocoserver
对象的创建和moco api
的实践。
mocoserver
比较简单,常用的参数基本port
和logmonitor
,其他的基本用不到。
moco API
实践内容比较少,因为录制时间不够了,并未把所有的request
和response
演示完,有兴趣可以自己尝试一下,十分推荐。
moco API 模拟框架视频讲解(下)
演示代码
package com.fun
import com.fun.base.bean.Result
import com.fun.moco.MocoServer
import com.github.dreamhead.moco.HttpServer
class DeleteNull extends MocoServer {
public static void main(String[] args) {
HttpServer server = getServer(8088, "1.log")
server.get(urlMatcher("/abc+")).response("funtest")
server.get(urlOnly("/ab")).response(obRes(Result.success(getJson("2323=3323"))))
server.get(urlStartsWith("/test")).response(limit("fun", "tester", 3000))
server.request(both(urlStartsWith("/te"), eqArgs("q", "fun"))).response(obRes(Result.success(getJson("name=fun"))))
server.get(urlStartsWith("/error")).response(setStatus(404))
server.response("haha")
MocoServer drive = run(server)
waitForKey("fan")
drive.stop()
}
}
MocoServer 代码
package com.fun.moco
import com.github.dreamhead.moco.HttpServer
import com.github.dreamhead.moco.MocoMonitor
import com.github.dreamhead.moco.MocoRequestHit
import com.github.dreamhead.moco.RequestHit
import com.github.dreamhead.moco.Runner
import static com.github.dreamhead.moco.Moco.httpServer
import static com.github.dreamhead.moco.Moco.log
/**
* 获取server的工具类,提供了计数监视器和日志监视器
* 这里的继承关系为了更方便调用mocorequest和mocoresponse的静态方法
*/
class MocoServer extends MocoResponse {
def array = []
/**
* 获取httpserver对象,端口号12345
* @return
*/
static HttpServer getServer() {
httpServer 12345, getLogMonitor()
}
/**
* 获取httpserver对象
* @param port
* @return
*/
static HttpServer getServer(int port) {
httpServer port, getLogMonitor()
}
/**
* 获取httpserver对象
* @param mocoMonitors
* @return
*/
static HttpServer getServer(MocoMonitor mocoMonitors) {
httpServer 12345, mocoMonitors
}
/**
* 获取httpserver对象
* @param port 端口
* @param logName 日志文件名
* @param configs 配置
* @return
*/
static HttpServer getServer(final int port, String logName, MocoMonitor configs) {
httpServer port, getLogMonitor(logName), configs
}
/**
* 获取httpserver对象
* @param port 端口
* @param logName 日志文件名
* @return
*/
static HttpServer getServer(final int port, String logName) {
httpServer port, getLogMonitor(logName)
}
/**
* 获取日志监视器,在log_path下面
* @param logName
* @return
*/
static def getLogMonitor(String logName) {
log LOG_Path + logName, DEFAULT_CHARSET
}
/**
* 获取日志监视器,默认在控制台显示
* @return
*/
static def getLogMonitor() {
log()
}
/**
* 获取计数监视器,计数器在做测试的时候用到,确认服务启动且接口调用正常
* @return
*/
static RequestHit getHitMonitor() {
MocoRequestHit.requestHit()
}
/**
* 启动所有服务
* @param httpServer
* @return
*/
static MocoServer run(HttpServer... httpServer) {
def server = new MocoServer()
httpServer.each { x -> server.array << Runner.runner(x) }
server.start()
}
/**
* 启动服务
* @return
*/
def start() {
array.each { x -> x.start() }
this
}
/**
* 结束服务
* @return
*/
def stop() {
array.each { x -> x.stop() }
}
}
-
郑重声明:“FunTester” 首发,欢迎关注交流,禁止第三方转载。更多原创文章:FunTester 十八张原创专辑,合作请联系
Fhaohaizi@163.com
。
热文精选
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。