当前位置: 首页 > news >正文

工贸一体化企业建设电子商务网站的误区机械英文网站

工贸一体化企业建设电子商务网站的误区,机械英文网站,太原网站优化培训,html页面 wordpress写一篇小文#xff0c;介绍一下 Java 下单元测试工具 TestNG 的使用#xff0c;代码在 IDEA 环境在编写。单元测试#xff0c;顾名思义#xff0c;对系统中原子性的功能进行测试#xff0c;一般情况下是单元测试是针对某个功能函数的测试。编写单元测试是系统开发中重要的…写一篇小文介绍一下 Java 下单元测试工具 TestNG 的使用代码在 IDEA 环境在编写。单元测试顾名思义对系统中原子性的功能进行测试一般情况下是单元测试是针对某个功能函数的测试。编写单元测试是系统开发中重要的一环也是一项科学优雅的装 X 方式。而且编写单元测试代码并不是一件很麻烦的事情只要稍微学习就可以掌握这项技能。TestNG 使用快速体验在开始之前需要引入 TestNG 库使用 maven 直接引入在 pom.xml 添加依赖org.testngtestng6.8test使用 IDEA 新建一个项目目录结构如下:├── pom.xml├── src│   ├── main│   │   ├── java│   │   └── resources│   └── test新建一个 Demo.java 类包含如下简单代码public class Demo {public int add(int a, int b) {return a b;}public int sub(int a, int b) {return a - b;}}在 IDEA 下使用快捷键 Ctrl Shift t 为其生成测试类这里可以看到我们选择了 TestNG 作为单元测试库IDEA 自动为我们生成了单元测试类的类名其命名规则为被测试类Test。最后勾选要进行测试的方法这里我只选择 add 方法。确定之后会在 src/test/java 目录下生成对应的类文件可以看到已经生成了 DemoTest.java 文件其内容如下public class DemoTest {Testpublic void testAdd() throws Exception {}}此时我们就可以开始编写测试代码。这里单元测试的目的是为了测试 Demo#add 这个函数的功能是否准确正常所以我们在 testAdd 中编写代码Testpublic void testAdd() throws Exception {Demo d new Demo();assertEquals(7, d.add(3, 4));}这里使用了 assertEquals 进行断言这句话相当于说d.add(3,4) 的结果应该是 7你帮我执行下 add 看看是不是返回 7。好了一个单元测试的用例完成之后就可以直接运行该测试方法可以看到输出如下[TestNG] Running:Default SuiteTotal tests run: 1, Failures: 0, Skips: 0表明这个测试通过函数功能没错。如果我们把代码改成 assertEquals(d.add(3, 4), 8);那么就会出现如下提示Expected :8Actual :7at org.testng.Assert.fail(Assert.java:94)at org.testng.Assert.failNotEquals(Assert.java:494)...........Default SuiteTotal tests run: 1, Failures: 1, Skips: 0表明 add 方法的返回结果和期望的不同方法可能存在 bug。这里要注意一个问题上面我们对 add 进行一次测试通过不代表 add 方法就不存在 bug。assertEquals(d.add(3, 4), 7); 只是一个测试用例。这里要理清一个概念为 add 函数编写了一个单元测试函数 testAdd之后我们需要使用多个测试用例来测试 add 函数是否存在 bug。为了证明 add 没有 bug需要考虑所有可能的情况包括 输入为0输入的 ab 参数为负数 等等尽量的覆盖所有可能性。所以一个严谨的测试应该如下Testpublic void testAdd() throws Exception {Demo d new Demo();assertEquals(d.add(3, 4), 7);assertEquals(d.add(-3, 4), 1);assertEquals(d.add(-3, -4), -7);assertEquals(d.add(0, 4), 4);assertEquals(d.add(0, 0), 0);}高级用法上面的例子只是简单用法旨在让初学者可以快速上手了解 TestNG 的 用法下面介绍一些高级用法来帮助我们更好的进行单元测试。BeforeClass/AfterClass 和 BeforeMethod/AfterMethod除了 Test 注解TestNG 还有两对常用的注解BeforeClass/AfterClass 和 BeforeMethod/AfterMethod。这些注解的关系如下图从上图可以看出BeforeMethod/AfterMethod 是在 Test 注解函数执行之前/之后执行的钩子函数。在执行每一个 Test 注解函数执行之前/之后都会执行 BeforeMethod/AfterMethod 注解函数。BeforeClass/AfterClass 的作用和 BeforeMethod/AfterMethod 类似不同的是BeforeClass/AfterClass 是在初始化类的时候执行这就意味着 BeforeClass/AfterClass 只会执行一次而 BeforeMethod/AfterMethod 执行次数和 Test 注解函数个数一样。public class DemoTest {BeforeClasspublic static void beforeClass() {System.out.println(before test....);}BeforeMethodpublic void beforeTest() {System.out.println(before test...);}Testpublic void testAdd() {int res new Dao().add(1, 2);Assert.assertEquals(res, 3);}Testpublic void testSub() {int res new Dao().sub(1, 2);Assert.assertEquals(res, -1);}AfterMethodpublic void afterTest() {System.out.println(after test....);}AfterClasspublic static void afterClass() {System.out.println(after class....);}}执行上面的代码可以看到 beforeClass/afterClass 只执行一次而 beforeMethod/afterMethod 执行了两次。这里还需要提一点BeforeClass/AfterClass 注解的函数必须使用 static 修饰。除了使用 assertEquals 断言函数测试结果之外TestNG 还提供了一些额外的测试情况。超时测试在 Test 注解中添加 timeOut 参数就可以进行超时测试Test(timeOut10) 表示测试方法的运行时间应该低于 10ms如果超时者测试失败。超时测试对于网络连接类的测试相当有用。超时测试具体用法如下Test(timeOut 1)public void testSub() {int i 0;while (i 1000000000) {i;}}异常测试异常测试用于测试方法是否有抛出异常通过 Test(expectedNullPointerException.class) 来指定方法必须抛出 NullPointerException如果没有抛出异常或者抛出其他异常则测试失败。Test(expectedExceptions NullPointerException.class)public void testSub() {throw new NullPointerException();}依赖测试有时候需要测试方法按照一个特定的顺序被调用这个时候需要使用 Test 注解的 dependsOnMethods 参数来指定依赖方法和方法的执行顺序// test1 执行之前会先执行 test2 test3Test(dependsOnMethods {test2,test3})public void test1(){}Testpublic void test2(){}Testpublic void test3(){}好了TestNg 的使用就到这里了其实单元测试并不是一件麻烦的事情花上一些时间学习一下很快就很上手。过了 TestNg 下次说下 Mockito 的使用。
http://www.sadfv.cn/news/239558/

相关文章:

  • 18款禁用网站app破解版网站开发文档范文
  • 哪些网站适合瀑布流群晖6.1搭建wordpress
  • cms二次开发网站建设个股期权系统网站开发
  • 范县网站建设律师如何做网络推广
  • 提高网站建设水平wordpress更换域名批量替换
  • 网站建设与维护蒋勇从微信网页版登录手机版下载
  • 微信外链网站同一个域名两个网站
  • 网站301重定向代码广州企业网站建设公司
  • 加强网站建设和维护wordpress js代码
  • 建设一个电影网站需要多少钱宁波建设监理协会
  • 厦门+外贸公司做网站做影视网站须要注意什么
  • 网站域名空间代理国外经典平面设计网站
  • 医疗网站建设资讯国外 精美 网站
  • 学校网站建设主体wordpress wpadmin
  • 国学大师网站谁做的wordpress 域名更换
  • 企业网站手机端和pc端一个后台吗wordpress怎么采集器
  • 个人免费建站的网站wordpress 清空回收站
  • 企业网站建设 南通公司搜索seo
  • 网站建设网站制作网站设计免费博客平台
  • 网站注册建设费用江苏建设工程信息网网址
  • 国开机考网站界面设计如何用公众号做网站
  • 南翔做网站公司公司注册网站需要提供什么文件
  • 专业的销售网站珠海做网站的公司
  • dede网站模板 音响网站支付端口
  • 网站投入费用郴州seo
  • 上海建设工程交易中心网站济南网页设计师招聘信息
  • 大连网站开发企业360网站空间
  • 怎样在手机做自己的网站6哪个电商平台最能卖货
  • 中国南昌网站建设成都网站建设天府科蓝
  • 0元做网站住房和城乡建设部网站关于污水运行负荷率要求的文件