Modbus RTU协议简单说明.docx

上传人:b****8 文档编号:24030075 上传时间:2023-05-23 格式:DOCX 页数:14 大小:437.71KB
下载 相关 举报
Modbus RTU协议简单说明.docx_第1页
第1页 / 共14页
Modbus RTU协议简单说明.docx_第2页
第2页 / 共14页
Modbus RTU协议简单说明.docx_第3页
第3页 / 共14页
Modbus RTU协议简单说明.docx_第4页
第4页 / 共14页
Modbus RTU协议简单说明.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Modbus RTU协议简单说明.docx

《Modbus RTU协议简单说明.docx》由会员分享,可在线阅读,更多相关《Modbus RTU协议简单说明.docx(14页珍藏版)》请在冰豆网上搜索。

Modbus RTU协议简单说明.docx

ModbusRTU协议简单说明

etBeans使用教程入门篇

一.创建项目

下面打开NetBeans,然后点击菜单“文件”->“新建项目”,打开“新建项目”对话框:

请在“类别”中选择“常规”,再从“项目”中选择“Java应用程序”,然后点击“下一步”,进入“新建Java应用程序”对话框:

 

 

在这个对话框中需要设置项目的名称以及项目所在目录,我为自己的项目起名为JUnitTest,“项目位置”为G:

\YPJCCK\JUnit\NetBeans,此外,请将“创建主类”前的对号去掉。

项目创建好后,已经自带了JUnit3.8.1。

二.编写用于测试的JavaBean

用于测试的JavaBean很简单,名为Book,只有id和name两个属性,这两个属性将分别用于两个用例当中。

下面开始编写该JavaBean。

请点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中Java类,在“文件类型”中选中Java类,点击“下一个”,进入下一窗口:

设置类名为Book,包为net.zheng.junit.test,设置完成后点击“完成”,修改代码如下:

packagenet.zheng.junit.test;

publicclassBook{

privateStringid=null;

privateStringname=null;

publicStringgetId(){

returnid;

}

publicvoidsetId(Stringid){

this.id=id;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

}

 

至此,用于测试的JavaBean编写完成。

三.编写测试用例

这里只用了一个类进行测试,名为BookTest,该类继承自junit.framework.TestCase类。

BookTest类包含两个用例,分别对应该类的testId和testName方法,即每个方法实现了一个测试用例。

注意,在JUnit中,junit.framework.TestCase的子类中每个用来实现测试用例的方法都必须以testXXX的格式来命名,这些方法在运行时会被执行。

此外,BookTest还包括setUp和tearDown这两个方法,前者在每个测试方法开始之前执行,多用来做初始化;后者在每个测试方法完成之后执行,多用来清理资源。

下面开始编写BookTest。

请点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中JUnit类,在“文件类型”中选中现有类的测试,点击“下一个”,进入下一窗口:

选择要测试的类,点击“完成”,修改代码如下:

packagenet.zheng.junit.test;

importjunit.framework.TestCase;

importjunit.framework.Assert;

publicclassBookTestextendsTestCase{

Bookbook=null;

//建议为测试类创建构造

publicBookTest(Stringname){

super(name);

}

protectedvoidsetUp()throwsException{

//调用超类的setUp(),以确保测试环境被初始化

super.setUp();

System.out.println("测试开始!

");

book=newBook();

System.out.println("book对象被初始化!

");

}

protectedvoidtearDown()throwsException{

System.out.println("book对象将被清理!

");

book=null;

System.out.println("测试结束!

");

//调用超类的tearDown(),以确保测试环境被清理

super.tearDown();

}

publicvoidtestId(){

book.setId("001");//设置id属性的值为001

//使用Assert查看id属性的值是否为001

Assert.assertEquals("001",book.getId());

System.out.println("id属性被测试!

");

}

publicvoidtestName(){

book.setName("ASP");//设置name属性的值为ASP

//使用Assert查看name属性的值是否为JSP,这是个必然出现错误的测试

Assert.assertEquals("JSP",book.getName());

System.out.println("name属性被测试!

");

}

}

这里setUp和tearDown方法没什么好说的,就是执行了对book对象的初始化和清理,不过testId和testName需要说明一下。

前者是在对book的id属性进行测试,首先赋值为”001”,然后使用Assert的assertEquals方法查看id属性中存放的值是否是期待的值,由于我的期待值也是”001”,所以执行后这个用例应该是成功的;后者则是对book的name属性进行测试,也是首先赋值为”ASP”,然后使用Assert的assertEquals方法查看其值是否是期待的,由于我特意将期待值设定为根本不可能的”JSP”,因此这个用例执行后会出现一个错误。

但请注意,由于我是特意要让测试出现错误,所以将期待值设定成了不可能的值,如果你是测试人员,请千万不要这么做,否则如果别的地方导致了错误,很容易给自己造成不必要的麻烦。

下面简单介绍一下上边用到的静态类junit.framework.Assert。

该类主要包含8个方法:

1.assertEquals()方法,用来查看对象中存的值是否是期待的值,与字符串比较中使用的equals()方法类似;

2.assertFalse()和assertTrue()方法,用来查看变量是是否为false或true,如果assertFalse()查看的变量的值是false则测试成功,如果是true则失败,assertTrue()与之相反;

3.assertSame()和assertNotSame()方法,用来比较两个对象的引用是否相等和不相等,类似于通过“==”和“!

=”比较两个对象;

4.assertNull()和assertNotNull()方法,用来查看对象是否为空和不为空;

5.fail()方法,意为失败,用来抛出错误。

我个人认为有两个用途:

首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写,而写成时又不清楚其正确与否,此时就可以使用fail方法抛出错误进行模拟;其次是抛出意外的错误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连接失败。

四.运行BookTest

编写好BookTest后,就可以运行了。

请在“项目”栏中选中BookTest,点击鼠标右键,选择“运行文件”,测试信息会从“输出”窗口输出:

五.测试套件

当有多个测试类需要一次性进行测试时,可以使用测试套件来完成这项工作。

在NetBeans中,点击“文件”->“新建文件”,打开“新建文件”对话框:

确保“项目”选择的是JUnitTest,然后在“类别”中选中JUnit类,在“文件类型”中选中测试套件,点击“下一个”,进入下一窗口:

修改“类名”为AllTests,点击“完成”,然后修改代码如下:

packagenet.zheng.junit.test;

importjunit.framework.*;

publicclassAllTestsextendsTestCase{

publicAllTests(StringtestName){

super(testName);

}

publicstaticTestsuite(){

TestSuitets=newTestSuite("AllTests");

ts.addTestSuite(BookTest.class);

returnts;

}

}

其中TestSuite是用来组织测试类的,通过其addTestSuite()方法将测试类添加到ts对象中,凡是添加到ts中的测试类都将在运行文件时被执行。

此外,您也可以在定义ts对象时利用其构造函数将测试类添加给ts对象,例如:

TestSuitets=newTestSuite(BookTest.class);

这并不会影响到后续使用addTestSuite()方法。

测试套件的运行方法与之前一样。

此外,JUnit自身也提供了运行测试的环境,但需要在NetBeans中做一些改动,所以就不作详细介绍了,这里只将代码给出:

 packagenet.zheng.junit.test;

importjunit.framework.*;

publicclassTest{

publicstaticvoidmain(String[]args){

//使用TestSuite组装测试类

TestSuitets=newTestSuite();

ts.addTestSuite(TestBook.class);

//textui,命令行方式

junit.textui.TestRunner.run(ts);

//swingui,Swing方式

//junit.swingui.TestRunner.run(ts.getClass());

//awtui,AWT方式

//junit.awtui.TestRunner.run(ts.getClass());

}

}

 

六.小结

其实JUnit上手很容易,远比想象的要简单的多,但我觉得如何编写测试类是很需要经验的,因为许多时候,测试一个用例,但涉及到可能不止一个类;而有些时候,一个类可能是做为工具使用,里边涉及很多内容,那么测试时是否还是只编写一个测试类呢?

关于这个话题,我想应该是仁者见仁、智者见智的,其实这才是测试的难题所在

 

[温馨提醒:

合同协议是经验性极强的领域,无法思考和涵盖全面,最好找专业律师起草或审核后使用。

范文供参考,期待你的好评与关注]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1