官网Demo分析Lite客户端
发表于2015-08-03
1.打开官网的Lite解决方案,可以看到该解决方案中有四个项目存在。
这里的底层和顶层都是相对而言,相对于Photon的Api来说,四个项目都属于顶层。
2.重点看客户端项目,打开Lite.TestConsole,可以看到里面只有一个类,Program类。这个类里面只有五个方法,其中Main是入口。
定位到Main()查看该部分代码。项目的名称和测试类的命名包含Tests这个单词是因为它是包含了单元测试的。
这四个case的分支中,第一个是RunTcpClientTests()这个是包含单元测试的,测试方法的返回结果是否和预想中的一样。单元测试也是
个必备技能了吧,一般大点的项目都会用到。
.在RunTcpClientTests()分支里面进行单元测试,就是你按下1之后进入该测试了。
var unitTests = new TcpTests(); 实例化一个待测试的类。
TestTcpClient(unitTests);进入测试
这个是测试方法,里面包含对各个模块的测试。我们进入第一个测试,就是Send ping
.下面是这个SendPing
452行初始化客户端,并建立一个连接
这个阻塞调用不是真正的阻塞,前台线程并没有停止,不会卡顿。用的是System.Threading.AutoResetEvent,在连接成功后Set了一下,超时或者是返回结果后程序往下走455-457行是向服务器发送一个Ping的请求。
460行 CheckDefaultOperationParameters(response, OperationCode.Ping);
这个方法是单元测试的核心了,顾名思义,就是是判断返回的请求结果的操作码是否和发送的这个一致
protected static void CheckDefaultOperationParameters(OperationResponse response, OperationCode operationCode)
{
Assert.AreEqual(0, response.ReturnCode, string.Format("Response has Error. ERR={0}, DBG={1}", response.ReturnCode, response.DebugMessage));
}
3.回到Program.cs里面,进入47行,RunTcpPerformanceTest2()测试客户端行为
135行:初始化一个测试
137行:添加客户端
139行:进入测试
这里是TcpPerformanceTests.cs的Ping方法。
里面有个WaitSteps,这个字段的用法还没有看出来,感觉就是要等所有的响应信息响应完成吧。
在Program.cs的RunS2sPerformanceTest分支中是ServerToServer的测试。请见下回分解。
这里的底层和顶层都是相对而言,相对于Photon的Api来说,四个项目都属于顶层。
2.重点看客户端项目,打开Lite.TestConsole,可以看到里面只有一个类,Program类。这个类里面只有五个方法,其中Main是入口。
定位到Main()查看该部分代码。项目的名称和测试类的命名包含Tests这个单词是因为它是包含了单元测试的。
这四个case的分支中,第一个是RunTcpClientTests()这个是包含单元测试的,测试方法的返回结果是否和预想中的一样。单元测试也是
个必备技能了吧,一般大点的项目都会用到。
.在RunTcpClientTests()分支里面进行单元测试,就是你按下1之后进入该测试了。
var unitTests = new TcpTests(); 实例化一个待测试的类。
TestTcpClient(unitTests);进入测试
这个是测试方法,里面包含对各个模块的测试。我们进入第一个测试,就是Send ping
.下面是这个SendPing
452行初始化客户端,并建立一个连接
这个阻塞调用不是真正的阻塞,前台线程并没有停止,不会卡顿。用的是System.Threading.AutoResetEvent,在连接成功后Set了一下,超时或者是返回结果后程序往下走455-457行是向服务器发送一个Ping的请求。
460行 CheckDefaultOperationParameters(response, OperationCode.Ping);
这个方法是单元测试的核心了,顾名思义,就是是判断返回的请求结果的操作码是否和发送的这个一致
protected static void CheckDefaultOperationParameters(OperationResponse response, OperationCode operationCode)
{
Assert.AreEqual(0, response.ReturnCode, string.Format("Response has Error. ERR={0}, DBG={1}", response.ReturnCode, response.DebugMessage));
}
3.回到Program.cs里面,进入47行,RunTcpPerformanceTest2()测试客户端行为
135行:初始化一个测试
137行:添加客户端
139行:进入测试
这里是TcpPerformanceTests.cs的Ping方法。
里面有个WaitSteps,这个字段的用法还没有看出来,感觉就是要等所有的响应信息响应完成吧。
在Program.cs的RunS2sPerformanceTest分支中是ServerToServer的测试。请见下回分解。