ÎҺܸßÐ˵ØÐû²¼£¬Moco 0.9·¢²¼ÁË¡£
MocoÊÇʲô£¿
MocoÊÇÒ»¸ö¿ÉÒÔÇáËɴ²âÊÔ·þÎñÆ÷µÄ¿ò¼Ü/¹¤¾ß/³ÌÐò¿â¡£
±ä¸ü
±¾´Î·¢²¼°üº¬Á½¸öÖØ´óµÄÐÂÌØÐÔ£¬Ê¼þºÍÑéÖ¤¡£
ʼþÖ¸µÄÊÇ£¬ÔÚijÖÖÇé¿öÏ£¬´¥·¢ÏàÓ¦µÄ´¦Àí¡£Ä¿Ç°Ö§³ÖµÄʼþÊÇ¡°Íê³É¡±Ê¼þ£¬Ò²¾ÍÊÇ˵£¬µ±Ò»¸öÇëÇó´¦ÀíÍê³Éʱ£¬ÎÒÃÇ¿ÉÒÔ×öÏàÓ¦µÄ´¦Àí¡£
±ÈÈ磬ÎÒÃÇ¿ÉÒÔÓÃÈçÏ´úÂëÔÚÇëÇó´¦ÀíÖ®ºó£¬·¢³öÁíÍâÒ»¸öÇëÇó¡£
server.request(by(uri("/event"))).response("event").on(complete(get("http://another_site")));
ÎÒÃÇ»¹¿ÉÒÔÉùÃ÷Õâ¸öÇëÇóÊÇÒì²½µÄ£¬ÕâÑù²»»á×èÈû±¾´Îµ÷Óøø¿Í»§¶Ë»ØÓ¦´ð¡£
server.request(by(uri("/event"))).response("event").on(complete(async(post("http://another_site", "content"), latency(1000))));
ÕâÖÖÇé¿ö¿ÉÒÔÓÃÓÚÖîÈçOAuthÈÏÖ¤Ö®ÀàµÄÇéÐΣ¬ÔÚ·þÎñÆ÷½Óµ½Ò»¸öÇëÇóÖ®ºó£¬·¢ÆðÁíÍâÒ»¸öÇëÇó¡£
ËüÒ²Ö§³ÖÏàÓ¦µÄJSONÅäÖãº
{
"request": {
"uri" : "/event"
},
"response": {
"text": "event"
},
"on": {
"complete": {
"async" : "true",
"latency" : 1000,
"post" : {
"url" : "http://another_site",
"content": "content"
}
}
}
}
ÑéÖ¤£¬ÊÇÒ»¸öÓÃÓÚ²âÊÔ´úÂëÖеÄÌØÐÔ£¬ÀàËÆÓÚMock¿ò¼ÜÖеÄverify¹¦ÄÜ£¬¶ÔÇëÇó½øÐÐÑéÖ¤¡£ÏÂÃæÊÇÒ»¸öÀý×Ó¡£
RequestHit hit = requestHit();
final HttpServer server = httpserver(12306, hit);
server.get(by(uri("/foo"))).response("bar");
running(server, new Runnable() {
@Override
public void run() throws Exception {
assertThat(helper.get(remoteUrl("/foo")), is("bar"));
}
});
hit.verify(by(uri("/foo")), times(1));
ÕâÀïµÄverifyµÄµÚÒ»¸ö²ÎÊýÊÇÒ»¸ömatcher£¬Ò²¾ÍÊÇ˵£¬ÎÒÃÇ¿ÉÒÔдÈÎÒâµÄÌõ¼þ×éºÏ£¬ÉõÖÁÓëÉèÖ÷þÎñÆ÷µÄÍêÈ«²»Í¬¡£
´ËÍ⣬ÎÒÃÇ»¹Ö§³ÖδԤÆÚÇëÇóµÄÑéÖ¤£¬ÈçÏ£º
hit.verify(unexpected(), never());
Ŀǰ֧³ÖµÄÑéÖ¤Ìõ¼þ°üÀ¨£º
never£º ûÓÐÊÕµ½ÕâÑùµÄÇëÇó¡£
time£º ׼ȷƥÅäÊÕµ½ÕâЩ´ÎÊýµÄÇëÇó¡£
atLeast£ºÖÁÉÙÊÕµ½ÕâЩ´ÎÊýµÄÇëÇó¡£
atMost£ºÖÁ¶àÊÕµ½ÕâЩ´ÎÊýµÄÇëÇó¡£
´ËÍ⣬»¹ÓÐÒ»Ð©Ð¡ÌØÐԵıä¸ü£º
ȱʡÇé¿öÏ£¬¹Ø±ÕÁËʹÓÃAPI·½Ê½µÄÈÕÖ¾¡£
seq APIÖ§³ÖÁËResponseHandler½Ó¿Ú¡£
ΪPUTºÍDELETE·½·¨Ôö¼ÓÁË¿ì½Ý·½Ê½¡£
ÔÚÄÚ²¿ÊµÏÖϸ½ÚÉÏÒ²ÓÐһЩ΢µ÷£º
Èç¹û²»Ìṩ¶Ë¿Ú£¬·þÎñÆ÷»á×ÔÐÐÑ¡Ôñ¿ÉÓö˿ڡ£
ÔÚFailoverµÄʵÏÖÀ¡°statusCode¡±¸Ä³ÉÁË¡°status¡±¡£Èç¹ûÒò´ËÔì³ÉÁ˲âÊÔʧ°Ü£¬¿ÉÒÔÊÖ¹¤ÐÞ¸ÄFailoverÎļþ¡£
¸Ðл
¸ÐлPaul Hammant£¬ÎªMocoÌṩÁË´óÁ¿µÄ·´À¡£¬²¢¼¤·¢ÁËÑéÖ¤ÌØÐÔʵÏÖµÄÁé¸Ð¡£
¹Ù·½Ê×Ò³£ºhttps://github.com/dreamhead/moco
À´×Ô:¿ªÔ´ÖйúÉçÇø

