Vi,Java,Ant和Junit的自学报告

1.Vi的学习:

1.1 安装vi

ubuntu默认安装了Vi,如果没有安装,在命令行使用如下命令进行安装:

sudo apt-get install vim

出现确认的时候,输入y确认就行。

1.2 常用命令和使用

1.2.1 vi的工作模式

(1)命令模式:使用vi打开一个文件首先进入命令模式,是使用vi的入口,通过命令对文件进行常规的编辑操作,如:定位、复制、粘贴、翻页、删除等。
(2)末行模式:用于执行保存、退出等操作。要退出vi,需要在末行模式下输入命令,末行模式是vi的出口。(在命令模式下按”:"便进入末行模式,可通过相应命令执行相应的结果,按"Esc"便可退回到命令模式)
命令如下:

命令功能
w保存
q退出,若有更改没保存不允许
q!强制退出,不保存直接退出
wq保存并退出
x保存并退出

(3)编辑模式:用于正常的文字编辑。(在命令模式下按"i"便可进入编辑模式,按"esc"便可退回到命令模式)

1.2.2 vi打开文件

命令:

vi filename     //打开filename文件
1.2.3 vi进行复制、粘贴

在命令行模式下:

yy    //将当前行复制到缓存区
nyy   //将当前行向下n行复制到缓冲区
yw    //复制从光标开始到词尾的字符
nyw   //复制从光标开始的n个单词
y^    //复制从光标到行首的内容
y$    //复制从光标到行尾的内容
p     //粘贴剪切板里的内容在光标后(小写)
P     //粘贴剪切板里的内容在光标前(大写)

2.Java的学习:

2.1 Java环境的安装:

在命令行输入如下命令:

sudo apt-get install default-jre
sudo apt-get install default-jdk

进行安装,安装结果通过下面的命令来验证是否安装成功且环境变量配置成功:

java --version
javac --version

结果:
在这里插入图片描述
在这里插入图片描述

2.2 Java的第一个程序:HelloWorld

HelloWorld.java文件内容如下:

public class HelloWorld {
    //The first java program
    public static void main(String []args) {
        System.out.println("Hello World!");
    }
}

在该文件所在目录下,按照如下命令进行编译运行:

javac HelloWorld.java
java HelloWorld

结果:
在这里插入图片描述

2.3 Java的自学总结:

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。在运行一个Java程序时,首先运行main方法,main相当于为Java程序的入口。Java提供了8种基本类型:byte,short,int, long, float,double, boolean, char;还提供了封装好的多个常用类,String,Number,Math。而Java的运算符,循环结构,条件语句等与C++相差不大,但在对象和类这方面有不小的差别。

3.Ant的学习:

3.1 Ant的安装

在命令行输入如下命令:

sudo apt install ant

安装完成后,使用如下命令查看是否成功:

ant -version

结果:
结果

3.2 Ant初次尝试

新建一个文件夹:test,进入该目录,新建一个build.xml,内容如下:

<?xml version="1.0"?>
<project name="helloWorld">
       <target name="sayHelloWorld">
              <echo message="Hello, world!"/>
       </target>
</project>

在该目录下运行ant sayHelloWorld:
在这里插入图片描述

3.3 Ant基本元素:

  1. project元素:
    project元素是Ant构件文件的根元素,Ant构件文件至少应该包含一个project元素,否则会发生错误。在每个project元素下,可包含多个target元素。project元素包含多个属性:

1)name属性:用于指定project元素的名称。

2)default属性:用于指定project默认执行时所执行的target的名称。

3)basedir属性:用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的附目录作为基准目录。

  1. target元素:它为Ant的基本执行单元,它可以包含一个或多个具体的任务。多个target可以存在相互依赖关系。它有如下常用属性:

1)name属性:指定target元素的名称,这个属性在一个project元素中是唯一的。我们可以通过指定target元素的名称来指定某个target。

2)depends属性:用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。

  1. property元素:该元素可看作参量或者参数的定义,project的属性可以通过property元素来设定,也可在Ant之外设定。若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>

3.3 Ant构建Java工程HelloWorld:

安装如下目录,新建文件夹和文件:

|__HelloWorld
   |__build
      |__classes
         |__HelloWorld.class
   |__src
      |__HelloWorld.java
   |__build.xml

HelloWorld.java:代码没变。

build.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="run">
  <!-- essential properties to refer to -->
  <property name="build.classes.dir" location="build/classes"/>
  <property name="src.dir" location="src" />
  <!-- target is a task, can build, change directory, Junit and so on -->
  <!-- clean up the class files that compiled last time -->
    <target name="clean">
      <delete dir="${build.classes.dir}" />
      <mkdir dir="${build.classes.dir}"/>
    </target>
    <target name="compile" depends="clean">
      <javac srcdir="${src.dir}" destdir="${build.classes.dir}" classpathref="compile.path" includeantruntime="true">
      </javac>
      <javac srcdir="${test.dir}" destdir="${build.classes.dir}" classpathref="compile.path" includeantruntime="true">
      </javac>
    </target>
    <!-- auto run after a compilation -->
    <target name="run" depends="compile">
      <java fork="true" classname="HelloWorld">
        <classpath path="${build.classes.dir}" />
      </java>
    </target>
</project>

运行ant命令:
在这里插入图片描述

3.4 Ant总结:

Ant的使用是为了方便我们部署和编译Java工程,其作用就相当于makefile对于c和c++的作用。常见的模板便是上面的HelloWorld的build.xml。在使用过程中,遇到一个问题便是:在运行ant命令后,java程序有运行,但是GUI界面没有弹出,在咨询TA后解决,需要在Java运行的目标内增加fork = true,这个属性。这是因为Ant默认行为是调用运行Ant本身的JVM,然而如果你想要单独地调用编译器,则需要设置fork属性为true。

4.Junit的学习:

4.1 Junit的安装:

下载junit-4.10.jar包,并在编译时加入该依赖

4.2 Junit和Ant联合使用检测HelloWorld:

按照如下目录存放文件:

|__HelloWorld
   |__build
      |__classes
         |__HelloWorld.class
   |__lib
      |__junit-4.10.jar
   |__src
      |__HelloWorld.java
   |__test
      |__HelloWorldTest.java
   |__build.xml

HelloWorldTest.java内容如下:

import static org.junit.Assert.assertEquals;
import org.junit.Test;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;

public class HelloWorldTest{
    PrintStream console = null;
    ByteArrayOutputStream bytes = null;
    HelloWorld te;

    @org.junit.Before
    public void setUp() throws Exception {
        te = new HelloWorld();
        bytes = new ByteArrayOutputStream();
        console = System.out;
        System.setOut(new PrintStream(bytes));
    }

    @org.junit.After
    public void tearDown() throws Exception {
        System.setOut(console);
    }

  @Test
  public void evaluatesExpression() {
    String arge[]=new String[50];
    te.main(arge);
    String s1 = new String("Hello World!\n");
    assertEquals(s1, bytes.toString());
  }
}

build.xml文件内容修改如下:

<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="junit">
  <!-- essential properties to refer to -->
  <property name="build.classes.dir" location="build/classes"/>
  <property name="src.dir" location="src" />
  <property name="test.dir" location="test" />
  <property name="lib.dir" location="lib" />
  <path id="compile.path">
    <pathelement location="${lib.dir}/junit-4.10.jar" />
  </path>
  <!-- target is a task, can build, change directory, Junit and so on -->
  <!-- clean up the class files that compiled last time -->
    <target name="clean">
      <delete dir="${build.classes.dir}" />
      <mkdir dir="${build.classes.dir}"/>
    </target>
    <target name="compile" depends="clean">
      <javac srcdir="${src.dir}" destdir="${build.classes.dir}" classpathref="compile.path" includeantruntime="true">
      </javac>
      <javac srcdir="${test.dir}" destdir="${build.classes.dir}" classpathref="compile.path" includeantruntime="true">
      </javac>
    </target>
    <!-- auto run after a compilation -->
    <target name="run" depends="compile">
      <java fork="true" classname="HelloWorld">
        <classpath path="${build.classes.dir}" />
      </java>
    </target>
  <!-- tests the methods in HelloWorld.java -->
  <target name="junit" depends="compile">
    <junit printsummary="true">
      <classpath path="${build.classes.dir}">
        <path refid="compile.path" />
      </classpath>
      <test name="HelloWorldTest" />
    </junit>
  </target>
</project>

运行ant命令进行测试:
在这里插入图片描述

4.3 Junit使用总结:

Junit 是为了检测代码中所定义的各类函数是否有 bug。在利用 Junit 进行测试时有如下说明:
1、JUnit4 不要求必须继承自 TestCase,而且测试方法不必以 test 开头,只要@Test来描述即可;
2、常用注解:
@Test:把一个方法标记为测试方法
@Before:每一个测试方法执行前自动调用一次
@After:每一个测试方法执行完自动调用一次
@BeforeClass:所有测试方法执行前执行一次,在测试类还没有实例化就已经被加载,所以用static修饰
@AfterClass:所有测试方法执行完执行一次,在测试类还没有实例化就已经被加载,所以用static修饰
@Ignore:暂不执行该测试方法
3、@Test的两个属性:
excepted:用来测试异常的。
timeout:用来测试性能的,就是测试一个方法能不能在规定时间内完成。
4、所有测试方法返回类型必须为void且无参数。
Junit测试也可与Ant结合,如上面的所示,详细的方法参看下面博客:
使用Ant进行Junit测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值