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

南昌网站建设过程网站地图页面模板

南昌网站建设过程,网站地图页面模板,中小企业信息网官网,链接生成二维码目录 一、单元测试1.快速入门2.Junit在实际开发中的用法 二、注解1.注解概述2.自定义注解3.元注解4.解析注解 一、单元测试 单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法。因此,单元测试就是针对Java方法的测试&#xff0…

目录

  • 一、单元测试
    • 1.快速入门
    • 2.Junit在实际开发中的用法
  • 二、注解
    • 1.注解概述
    • 2.自定义注解
    • 3.元注解
    • 4.解析注解

一、单元测试

单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法。因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。

可以测试的方法必须是公共的无参数无返回值的非静态方法。

需要用到Junit单元测试框架。

在这里插入图片描述

1.快速入门

这是我们写的进行测试的方法。@Test这个注解表示当前方法可以通过单元测试来进行测试。

在这里插入图片描述
点击绿色箭头,如果方法成功通过,则会有以下结果。

在这里插入图片描述

2.Junit在实际开发中的用法

以后在实际开发中,如果想要测试一个方法是否正确,并不是直接在当前方法的上面写@Test。而是独立编写一个测试类。在这个类中,编写一些方法,在方法里面调用要被测试的方法即可。

在这里插入图片描述

见下面代码,在测试方法的前面有一个注解@Before的方法,在后面有一个直接@After的方法。

public class JunitDemo2 {@Beforepublic void beforeMethod() {System.out.println("before");}@Testpublic void method() {System.out.println("Test");}@Afterpublic void afterMethod() {System.out.println("after");}}

可以发现,@Before在测试方法之前执行了一次,@After在测试方法之后执行了一次。

在这里插入图片描述

需求:测试File类中delete方法是否书写正确。

因为要测试delete方法,因此执行该方法可能会导致文件被删除。所以我们要在@Before方法中对文件进行备份,然后测试完之后,要在@After方法中恢复文件(a.txt),并删除备份文件(copy.txt)。

public class JunitDemo3 {//测试代码不可以污染源数据,即不可以对源数据有任何的修改//例如要对一个文件进行操作,不可以对文件的内容进行修改,也不可以导致文件被删除//1.利用Before去对数据做一个初始化的动作//2.利用Test真正的去测试方法//3.利用After去还原数据//需求:测试File类中delete方法是否书写正确//如果我们直接在测试方法中去运行file.delete方法,可能会导致被测试的文件直接被删除@Beforepublic void beforeMethod() throws IOException {//进行备份FileInputStream fis = new FileInputStream("C:\\Users\\lenovo\\IdeaProjects\\basic-code\\day34\\a.txt");//将源数据拷贝一份FileOutputStream fos = new FileOutputStream("C:\\Users\\lenovo\\IdeaProjects\\basic-code\\day34\\copy.txt");int b;while ((b = fis.read()) != -1) {fos.write(b);}fos.close();fis.close();}@Testpublic void method() {/*在这个方法中对File类中delete方法进行测试*/File file = new File("C:\\Users\\lenovo\\IdeaProjects\\basic-code\\day34\\a.txt");boolean b = file.delete();//检查a.txt是否存在boolean exists = file.exists();//断言Assert.assertEquals("delete方法出错", b, true);Assert.assertEquals("exists方法出错", exists, true);}@Afterpublic void afterMethod() throws IOException {File file = new File("C:\\Users\\lenovo\\IdeaProjects\\basic-code\\day34\\copy.txt");//恢复数据FileInputStream fis = new FileInputStream(file);FileOutputStream fos = new FileOutputStream("C:\\Users\\lenovo\\IdeaProjects\\basic-code\\day34\\a.txt");//将拷贝的数据恢复成源文件int b;while ((b = fis.read()) != -1) {fos.write(b);}fos.close();fis.close();//最后将备份数据删除file.delete();}}

在这里插入图片描述

二、注解

1.注解概述

注解的主要作用:对我们的程序进行标注。通过注解可以给类增加额外的信息。

注解是给编译器或JVM看的,可以根据注解来完成对应的功能。

@Override表示该方法是重写的方法,@Deprecated表示该方法已经过时,@SuppressWarnings(“all”)可以去掉警告信息,即代码底下的黄线。

在这里插入图片描述
在这里插入图片描述

2.自定义注解

自定义注解单独存在是没有什么意义的,一般会跟反射结合使用,会用反射去解析注解。

在这里插入图片描述
在这里插入图片描述

这是注解的代码:

public @interface MyAnno {public String name();public int age();
}

这是使用自定义注解的代码,如果没有给默认值,则要手动赋值。

@MyAnno(name = "wuhan", age = 137)
public class MyAnnoDemo1 {String name;String age;public void method() {System.out.println("method");}
}

3.元注解


在这里插入图片描述

可以发现,图中右边的注解被约束只能定义在方法上,所以左边定义在类上的注解就报错了。

在这里插入图片描述

4.解析注解

在这里插入图片描述

有以下的需求:

在这里插入图片描述

注解代码如下:

//表示我们的注解只能写在方法上面
@Target(ElementType.METHOD)
//表示着我们的注解可以再任意时期都存在
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTest {}

类代码如下:

public class MyTestDemo {@MyTestpublic void method() {System.out.println("method");}public void method1() {System.out.println("method1");}public void method2() {System.out.println("method2");}
}

测试类:

public class Test {public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, InvocationTargetException {//获取类的class对象Class<?> clazz = Class.forName("annotataiondemo1.MyTestDemo");MyTestDemo mtd = (MyTestDemo) clazz.newInstance();//获取所有方法Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {//判断当前方法上面有没有MyTest注解if (method.isAnnotationPresent(MyTest.class)) {method.invoke(mtd);}}}
}

只有method方法上有注解,所以只有method方法执行了。

在这里插入图片描述


文章转载自:

http://eF9E2Q8F.kwpnx.cn
http://TnUaoYWb.kwpnx.cn
http://zv9uHJvB.kwpnx.cn
http://fNRw99mF.kwpnx.cn
http://7gwGxeHK.kwpnx.cn
http://DiSqiBo0.kwpnx.cn
http://rYzvebiB.kwpnx.cn
http://XbNy1fP5.kwpnx.cn
http://nLDxtYKl.kwpnx.cn
http://A1LkR0qL.kwpnx.cn
http://9hEFxGa9.kwpnx.cn
http://Wq3lWhFw.kwpnx.cn
http://tBaj3ed4.kwpnx.cn
http://GALxv6Lc.kwpnx.cn
http://de04YPA2.kwpnx.cn
http://mStebUix.kwpnx.cn
http://rqMgQV60.kwpnx.cn
http://hMSJ1AMJ.kwpnx.cn
http://hTcgMNHQ.kwpnx.cn
http://rDDrPS8r.kwpnx.cn
http://U5Pbjt1T.kwpnx.cn
http://AQtFVQZO.kwpnx.cn
http://J4xygkO8.kwpnx.cn
http://naNBwmOD.kwpnx.cn
http://C6zkQkma.kwpnx.cn
http://iogMo8Eg.kwpnx.cn
http://EaLjJlIC.kwpnx.cn
http://SuQBLehD.kwpnx.cn
http://dZgMBIM7.kwpnx.cn
http://UAOtIQSk.kwpnx.cn
http://www.dtcms.com/wzjs/634995.html

相关文章:

  • 有没有专门做建筑造价的私单网站北京网站建设那些
  • 广东网站制作网站建设公司湖南
  • 建站工具有哪些cms怎么做企业网站一级悬浮菜单
  • 免费申请做网站北京网站设计公司哪个好
  • 做驾校题目用什么网站好做网站在哪接单
  • 玛纳斯县住房和城乡建设局网站网站设计中搜索界面怎么做
  • 做课件的网站百度手机网址提交
  • 河北网站备案多久云虚拟主机怎么做网站
  • 自学网站建设 难吗南宁网站优化推广方案
  • 响应式网站建设服务商办公室装修注意事项及细节
  • 淘宝客网站备案信息怎么写江西有色建设集团有限公司网站
  • 求邯郸网站制作网络营销有哪些推广的方法
  • 网站推广主要是做什么网站如何备案要关站吗
  • photoshop画简单网站浙江网缘科技有限公司
  • 阿里云做网站麻烦吗网站索引量暴增
  • 网站建设网页制电子产品定制开发
  • 新浪博客怎么做网站随州网站建设学习
  • 知名网站排行榜wordpress站标签打开空白
  • 网站开发是固定资产吗scratch
  • 专做动漫解说的网站腾讯云wordpress搭建网站
  • 网站营销策略湛江网站建设模板定位工厂
  • 可信赖的大良网站建设导航站 wordpress
  • 一流小说网站模板广州个人网站备案要多久
  • 专业的餐饮加盟网站建设网站不备案影响收录吗
  • 河北邯郸做网站的公司哪家好网站建设后压缩代码
  • 小工作室做网站wordpress弹窗广告
  • 网站的设计与实现成都网站制作推来客网站系统好吗
  • 晋州市建设局网站网站建设实务课本
  • 南宁市住房和城乡建设局网站网页跳转到别的网站
  • 东莞市的网站公司哪家好龙岗区住房和建设局官网