吴江那里有做公司网站的政务网站建设依据国家

news/2025/9/23 23:57:28/文章来源:
吴江那里有做公司网站的,政务网站建设依据国家,百度分享wordpress插件下载,广东珠海网站建设初步认识JUnit 目前大多数的基于Java的企业应用软件#xff0c;肯定少不了单元测试#xff0c;程序员通过编写单元测试来验证自己程序的有效性#xff1b;管理者通过持续自动的执行单元测试和分析单元测试覆盖率来确保软件本身的质量。可以说单元测试和集成测试在软件开发整…初步认识JUnit   目前大多数的基于Java的企业应用软件肯定少不了单元测试程序员通过编写单元测试来验证自己程序的有效性管理者通过持续自动的执行单元测试和分析单元测试覆盖率来确保软件本身的质量。可以说单元测试和集成测试在软件开发整个流程中占有举足轻重的地位。     单元测试是指对软件中的最小可测试单元进行检查和验证。单元测试不是为了证明程序是对的而是证明程序没有错。Java常用的单元测试框架有JUnit,TestNG,还有些MOCK框架这里我们只来讲述JUnit。 JUnit             JUnit的两种版本是JUnit 3.8和JUnit 4,前者使用反射后者使用反射和注解。 例子 Calculator 1 package com.shop.web.test;2 public class Calculator {3 private static double result 0.0;4 public void add(double num) {5 result result num;6 }7 public void substract(double num) {8 result result - num;9 } 10 public void multiply(double num) { 11 result result * num; 12 } 13 public void divide(double num) { 14 if (num ! 0) { 15 result result / num; 16 } else { 17 result result; 18 } 19 } 20 // 清零 21 public void clear() { 22 result 0; 23 } 24 public double getResult() { 25 return result; 26 } 27 }  CalculatorTest.java 1 package com.shop.web.test;2 import junit.framework.TestCase;3 public class CalculatorTest extends TestCase {4 private static Calculator calculator new Calculator();5 6 Override7 protected void setUp() throws Exception {8 System.out.println(JUnit initialize the fixture state by overriding setup );9 calculator.clear(); 10 } 11 Override 12 protected void tearDown() throws Exception { 13 System.out.println(JUnit clean-up after a test by overriding tearDown ); 14 calculator.clear(); 15 } 16 public void testAdd() { 17 System.out.println(add result: calculator.getResult()); 18 calculator.add(10.1); 19 assertEquals(10.1, calculator.getResult()); 20 } 21 public void testSubstract() { 22 System.out.println(substract result: calculator.getResult()); 23 calculator.add(10.1); 24 calculator.substract(2); 25 assertEquals(8.1, calculator.getResult()); 26 } 27 public void testMultiply() { 28 System.out.println(multiply result: calculator.getResult()); 29 calculator.add(12); 30 calculator.multiply(12); 31 assertEquals(144.0, calculator.getResult()); 32 } 33 public void testDivide() { 34 System.out.println(divide result: calculator.getResult()); 35 calculator.add(12); 36 calculator.divide(12); 37 assertEquals(1.0, calculator.getResult()); 38 } 39 }  绿条代表程序没有错误   使用JUnit3.8           需要满足如下原则 1、测试方法使用test作为方法名的前缀JUnit设计 用反射找到以test开头的方法 2、测试方法必须使用public void 进行修饰不能带任何的参数 3、测试类和目标源代码的类应该位于同一个包下面即包名应该一致 4、新建一个源代码目录来存放我们的测试代码即源代码和测试代码分开 5、测试方法中间必须可以独立测试测试方法之间不能有任何的依赖关系 测试类必须继承TestCase 下面是TestCase的文档说明junit.framework.TestCase 1 public abstract class TestCase extends Assert implements Test 2 A test case defines the fixture to run multiple tests. 3 To define a test case 4 1) implement a subclass of TestCase 5 2) define instance variables that store the state of the fixture 6 3) initialize the fixture state by overriding setUp 7 4) clean-up after a test by overriding tearDown. 8 Each test runs in its own fixture so there can be no side effects among test runs 1、测试类通过重写 TestCase的setUp()方法用来初始化测试方法即在每一个测试方法执行之前执行 2、测试类通过重写 TestCase的tearDown()方法用来清理测试方法产生的垃圾即在每一个测试方法执行之后执行 如执行例子计算器test 1 JUnit initialize the fixture state by overriding setup 2 add result:0.03 JUnit clean-up after a test by overriding tearDown 4 JUnit initialize the fixture state by overriding setup 5 substract result:0.06 JUnit clean-up after a test by overriding tearDown 7 JUnit initialize the fixture state by overriding setup 8 multiply result:0.09 JUnit clean-up after a test by overriding tearDown 10 JUnit initialize the fixture state by overriding setup 11 divide result:0.0 12 JUnit clean-up after a test by overriding tearDown   使用JUnit4.1             需要满足如下原则 1、Test 与JUnit 3.8.1不同在JUnit 4.1中不再强制要求方法名以test开头而是允许随意命名前提是没有继承TestCase否则注解就不起作用了其次只要符合Java的命名规范就行但测试用例必须以Test注解。 多个Test没有明确的执行顺序4.11版本MethodSorters可以定义执行顺序如果你想要改变test的执行顺序那么你可以简单的在test类上加以个注解FixMethodOrder 并且指定一个合适的MethodSorters FixMethodOrder(MethodSorters.JVM) : 根据JVM返回的顺序来决定test方法的执行顺序。每次测试这个顺序可能都不一样 FixMethodOrder(MethodSorters.NAME_ASCENDING) : 根据test方法名按照字典顺序升序排序 2、Before和After JUnit3.8.1中的setUp和tearDown这两个方法分别使用Before和After来进行注解前者在每个测试方法开始之前执行多用来做初始化后者在每个测试方法完成之后执行多用来清理资源。 注解必须用在public方法。 3、BeforeClass和AfterClass JUnit 4.1还提供了BeforeClass和AfterClass注解功能与Before和After类似但前者是用在所有用例执行之前做初始化、之后做清理而后者是在每个用例执行之前做初始化、之后做清理。注解必须用在public static方法 注意前提是没有继承TestCase否则注解就不起作用了就必须使用test开头的方法。 1 public class CalculatorTest4 {2 private static Calculator calculator new Calculator();3 4 Before5 public void setUp() throws Exception {6 System.out.println(JUnit initialize the fixture state by overriding setup );7 calculator.clear();8 }9 After 10 public void tearDown() throws Exception { 11 System.out.println(JUnit clean-up after a test by overriding tearDown ); 12 calculator.clear(); 13 } 14 Test 15 public void add() { 16 System.out.println(add result: calculator.getResult()); 17 calculator.add(10.1); 18 assertEquals(10.1, calculator.getResult()); 19 }  4、Test(expected*.class)在JUnit4.0之前对错误的测试我们只能通过fail来产生一个错误并在try块里面assertTruetrue来测试。现在通过Test元数据中的expected属性。expected属性的值是一个异常的类型用来检查抛出预期异常。 1 Test(expectedArithmeticException.class) 2 public void divide(){ 3 int i 2/0; 4 } 5、Test(timeoutxxx):该元数据传入了一个时间毫秒给测试方法如果测试方法在制定的时间之内没有运行完则测试也失败。 Test(timeout1)public void count(){for (int i 0; i 1000000000; i) {System.out.println(i);}}   6、ignore该元数据标记的测试方法在测试中会被忽略。当测试的方法还没有实现或者测试的方法已经过时或者在某种条件下才能测试该方法比如需要一个数据库联接 而在本地测试的时候数据库并没有连接那么使用该标签来标示这个方法。同时你可以为该标签传递一个String的参数来表明为什么会忽略这个测试 方法。比如lgnore(“该方法还没有实现”)在执行的时候仅会报告该方法没有实现而不会运行测试方法。 1 Ignore(此方法现在不需要) 2 Test 3 public void ignore(){ 4 System.out.println(不需要); 5 }   Spring整合JUnit            Junit测试Spring可以很方便的进行。  用到jar包spring-test-xxx.jar,junit4的jar。 需要注解 RunWith、ContextConfiguration   RunWith如   RunWith(SpringJUnit4ClassRunner.class)   //表示继承了SpringJUnit4ClassRunner   ContextConfiguration如 用来加载Spring配置文件ContextConfiguration(locations {classpath:applicationContext-mybatis.xml,……}) 注意(1)如果spring配置文件applicationContext.xml在classpath路径下即通常的src目录下这样加载配置文件用classpath前缀。      (2)但是在web项目中有些人喜欢把spring配置文件applicationContext.xml放在WEB-INF目录下这里不是classpath目录。这种情况可以按如下方式配置用file前缀指定配置文件的绝对路径。貌似这种方式不是很友好。 如locations  { file:D:\\workspace\\webproxy\\src\\main\\resources\\  applicationContext.xml } 完整代码如下 package com.shop.web.test;import java.util.Date; import java.util.List; import java.util.UUID;import javax.annotation.Resource;import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional;import com.alibaba.fastjson.JSON; import com.shop.web.entity.ShopUser; import com.shop.web.service.ShopUserService; import com.shop.web.util.DateUtil; /*** service、dao层的测试类* author ces**/ RunWith(SpringJUnit4ClassRunner.class)//表示继承了SpringJUnit4ClassRunner类 ContextConfiguration(locations {classpath:applicationContext-mybatis.xml,classpath:applicationContext-service.xml,classpath:applicationContext-transaction.xml}) public class ShopControllerTest {private static Logger logger Logger.getLogger(ShopControllerTest.class);Resourceprivate ShopUserService shopUserService;TransactionalTestpublic void getShopUserById(){ShopUser shopUser new ShopUser();shopUser.setUserid(6);shopUser.setUsername(zhangsan);shopUser.setPassword(333);shopUser.setCreateTime(Long.parseLong(DateUtil.getString(new Date(), DateUtil.YMDHMS)));try {shopUserService.insertSelective(shopUser);int i 2/0;} catch (Exception e) {e.printStackTrace();logger.info(ShopControllerTest e);}logger.info(JSON.toJSONString(*********));} }             转载于:https://www.cnblogs.com/drubber/p/5791640.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/914292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么开个人网站赚钱网络推广公司名称

std::thread是C11线程库提供的线程创建。参数绑定的是线程需要调用的函数与参数。 1、如何创建 std::thread th;//空的, std::thread th1([]() { //匿名函数, //执行线程代码 }); void thFun(int k); std::thread th(thFun,10);// thFun为…

科技公司网站php源码wordpress被禁

在 Git 中,如果你想从本地其他设备上获取分支,可以通过以下几种方式实现。不过,需要注意的是,Git 本身是分布式版本控制系统,通常我们是从远程仓库(如 GitHub、GitLab 等)拉取分支,而…

网站建站时间查询许昌网站建设汉狮怎么样

PAGE \* MERGEFORMAT43《软件工程》(第五版)习题参考答案第1章 一、判断题1、()软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、()软件危机的产生主要是因为程序设计人员使用了不适当的程序设计语言。 4、(√)软件同其他事物一样&#xf…

搜索百科(4):OpenSearch — 开源搜索的新选择

大家好,我是 INFINI Labs 的石阳。 欢迎关注 《搜索百科》 专栏!每天 5 分钟,带你速览一款搜索相关的技术或产品,同时还会带你探索它们背后的技术原理、发展故事及上手体验等。 上一篇我们围观了 “流量明星” Ela…

怎么学好网站开发开发网站性能监控

这是王垠发表的一篇文章,转给大家看看,希望有些收获王垠是谁?王垠,四川大学97级本科毕业,保送到清华大学计算机系直博。期间曾在清华大学计算机系软件所就读,主要进行集成电路布线算法的研究。在此期间&…

广州视频网站建站公司做淘宝客网站制作教程视频教程

目的 搜索框搜索内容重载数据只显示搜索到的结果 遇到的问题 在layui官方文档里介绍的table属性有data项,但使用下列代码 table.reload(test, {data:data //data为json数据}); 时发现,会会重新调用table.render的url拿到原来的数据,并不会显示出来传…

美容院怎么建立自己的网站国企网站建设报告

文章目录 Lambda表达式作用前提函数式接口特点 语法省略模式和匿名对象类的区别 Stream流思想作用三类方法获取方法单列集合(Collection[List,Set双列集合Map(不能直接获取)数组同一类型元素(Stream中的静态方法) 常见的中间方法终结方法收集方法 Optional类 Lambda表达式 作用…

网站导航做外链html5视频播放器 js

Deque(双向队列) 是一种优化了的、对序列两端元素进行添加和删除操作的基本序列容器。它允许较为快速地随机访问,但它不像vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,并且在一个映射结构中保存对这些块及其顺序的跟踪。向deque 两端添加或删除元…

免费的域名注册网站做哪些网站比较赚钱方法

1.ROOT权限开启 2.开启网络桥接模式,选择静态IP设置,点击安装桥接网卡,填写IP地址(注意:IP地址要与host主机在同一IP段内) 3.重启后 adb shell就能进入到模拟器控制台中了,如果出现以下内容&…

公司招聘网站排行榜专业从事网站开发公司

前言 今天参考的开源组件Graceful Response——Spring Boot接口优雅响应处理器。 具体用法可以参考github以及官方文档。 基本使用 引入Graceful Response组件 项目中直接引入如下maven依赖&#xff0c;即可使用其相关功能。 <dependency><groupId>com.feiniaoji…

做网站有什么建议wordpress导航源码

勤劳是最基本的&#xff0c;所能做的就是花更多的时间在上面。 就算最后不能成功&#xff0c;尽力就好。 First . 充分清楚需求改造内容&#xff0c;具体到 哪个字段、逻辑处理等。 这是编码的核心&#xff0c;清楚了需求才能进行编码&#xff0c;也决定了你编码后续的测试情况…

国人在线做网站爱站网长尾关键词挖掘工具下载

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“找不到d3dcompiler_43.dll文件”。那么&#xff0c;d3dcompiler_43.dll是什么文件&#xff1f;它的作用是什么&#xff1f;如果缺失了该如何修复呢&#xff1f;本文将详细介绍d3dcompiler_…

做外贸平台还是网站怎么做捕鱼网站

粒子物理和原子核物理的理论可以应用于模拟和分析电路中的粒子束和辐射效应&#xff0c;特别是在粒子加速器和辐射探测器的设计和优化方面。通过这些理论的应用&#xff0c;可以提高加速器和探测器的性能&#xff0c;推动粒子物理和原子核物理的研究进展。粒子物理和原子核物理…

摄影网站的模板公司大气聚财的名字

前言 在实际开发中,我们经常需要处理一些周期性或定时的任务,比如每天凌晨进行数据统计、报表生成,或者每隔一段时间清理缓存等。Spring Boot 集成了 Quartz 和 Spring 自带的 TaskScheduler 等多种定时任务框架,使得实现定时任务变得非常方便。本文将通过一个详细的示例,…

重庆做网站个人深圳市建工建设集团有限公司官网

给你一个有 n 个结点的二叉树的根结点 root &#xff0c;其中树中每个结点 node 都对应有 node.val 枚硬币。整棵树上一共有 n 枚硬币。 在一次移动中&#xff0c;我们可以选择两个相邻的结点&#xff0c;然后将一枚硬币从其中一个结点移动到另一个结点。移动可以是从父结点到…

莱芜网站建设sikesoft北京网站开发不限年龄

近期&#xff0c;某百万级粉丝网红的法律维权之路引发社会关注。其在面对网络造谣行为时积极搜集证据&#xff0c;使用区块链技术将相关信息上链保全&#xff0c;然后将造谣者全部起诉&#xff0c;一系列操作被广大网友喻为是教科书式网络维权。 科技在发展&#xff0c;时代在…

重庆网站备案多久网站设计需求表

源于个人网站&#xff1a;http://programmer.2008red.com/programmer/article_647_777_1.shtml 收到一封来自Exoweb的邮件&#xff0c;让去面试&#xff08;败的很惨&#xff0c;呵呵。过了好长时间了&#xff0c;都忘记这事了&#xff0c;结果这公司来了邮件&#xff0c;说不能…

用于做网站头的图片小兽 wordpress

目录 一、方法一 采用qrcodejs2生成1.1、安装二维码插件qrcodejs21.2、在vue文件中&#xff0c;引入生成二维码插件1.3、构建二维码对象qrCodeDiv 一、方法二 -采用qrcode生成2.1、安装qrcode2.2、页面引入2.3、方法里边使用2.4、options 三、方法三 vue-qr3.1、安装3.2、页面引…

做爰网站贴吧投放广告赚钱平台有哪些

企业级大数据架构设计 企业级大数据架构设计 又名&#xff1a; 学习大数据概念&#xff0c; 写框架&#xff08;第1天&#xff09; 数据架构与设计&#xff1a;概述与设计考虑 引言数据架构概述设计考虑因素构建数据架构的步骤 大数据的核心架构内容&#xff1a;构建高效和…

中国企业网站建设现状电商seo是指

国内游戏市场趋于饱和&#xff0c;但是国外市场潜力仍然可观&#xff0c;因此很多人选择游戏出海&#xff0c;那么现在游戏出海有多少优势呢&#xff1f; 1、市场潜力 全球游戏市场潜力巨大&#xff0c;增长迅速。中国游戏公司具有强大的研发能力和创新能力&#xff0c;能够开…