Vi&Java&Ant&Junit自学报告

Vim

Vi是所有Unix和linux系统下标准的编辑器,Vi和vim都是linux系统中的编辑器,vim比较高级,可以看作vi的升级版。Vi用于文本编辑,但vim更适用于coding。

1. 三模式

vim三模式

2.命令模式下按键功能

i a o进入输入模式

(1).移动光标

  • h(←)【光标向左移动一个字符】
  • j(↓) 【光标向下移动一个字符】
  • k(↑) 【光标向上移动一个字符】
  • l(→)【光标向右移动一个字符】

格式:

[数字][移动命令] 【移动数字次数】

  • [Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)

  • [Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)

  • [Ctrl] + [d] 屏幕『向下』移动半页

  • [Ctrl] + [u] 屏幕『向上』移动半页

  • 0 【移动到这一行的最前面字符处】

  • $ 【移动到这一行的最后面字符处】

  • G 【移动到这个档案的最后一行】

  • [数字]G 【移动到这个档案的第 [数字] 行】

  • gg 【移动到这个档案的第一行,相当于 1G】

  • [数字] 【光标向下移动 [数字] 行】

(2).搜索、替换

  • /word 【向光标之下寻找一个名称为 word 的字符串】

  • ?word 【向光标之上寻找一个字符串名称为 word 的字符串】

  • n 【重复前一个搜寻的动作,向相同方向继续搜寻下一个字符串】

  • N 【为『反向』进行前一个搜寻动作】

  • :n1,n2s/word1/word2/g 【n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2】

  • :1,$s/word1/word2/g 或 :%s/word1/word2/g 【从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2】

  • :1,$s/word1/word2/gc 或 :%s/word1/word2/gc 【从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2,且在取代前显示提示字符给用户确认 (confirm) 是否需要取代】

(3).删除、复制

  • x, X 【x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace])】
  • nx 【连续向后删除 n 个字符】
  • dd 【删除所在行】
  • ndd 【删除以下n行】
  • yy 【复制所在行】
  • nyy 【复制以下n行】
  • p,P 【p为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行】
  • J 【合并所在行以及下一行】
  • u 【撤销上一次操作】
  • . 【重复前一个动作】

(4).存储、离开

  • :w 【存储】
  • :w! 【强制写入】
  • :q 【离开】
  • :q! 【强制离开,不存储】
  • :wq 【存储后离开】
  • ZZ 【若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开】
  • :w [filename] 【另存】
  • :r [filename] 【读入另一个档案的数据】
  • :n1,n2 w [filename] 【将 n1 到 n2 的内容储存成 filename 这个档案】
  • :! 【暂时离开 vi 到指令行模式下执行 command 的显示结果】

(5).设置环境相关

  • :set nu 【显示行号】
  • :set nonu 【取消行号】

Java

1. 安装

安装JDK/JRE(ubuntu 默认)

安装OpenJRE:

sudo apt install default-jre

查看版本:

java -version

安装JDK:

sudo apt install default-jdk

验证是否安装了JDK :

javac -version

2. 配置环境变量

将如下设置添加到~/.bashrc中,(根据自己的安装调整)

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

生效:

source ~/.bashrc

3. 使用

以执行BugRunner为例:

编译:

javac -classpath .:(包路径)/包 路径/编译文件(BugRunner.java)

运行

java -classpath .:(包路径)/包 class 文件所在的目录路径 执行文件路径/执行文件名(BugRunner)

Ant

Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,主要用于Java环境中的软件开发。

1. 安装

  • http://ant.apache.org 上下载 tar.gz 版 ant
  • mv apahce-ant-1.8.2-bin.tar.gz /opt 移动到 /opt 下
  • tar -vxzf apahce-ant-1.8.2-bin.tar.gz 解压
  • chmod -R +x apahce-ant-1.8.2 修改权限
  • mv apahce-ant-1.8.2 ant 改名

2. 配置

  • vi ~/.bashrc 修改配置文件

    添加如下:

    export ANT_HOME=/opt/ant
    PATH=$PATH:/opt/ant/bin

    生效:

    source ~/.bashrc

    检验:

    ant -version 测试ant是否生效

3. 使用

基本组成( 例: build.xml ):

<project name="ant-project" default="example">
    <target name="example">
        <echo message="Hello World!" />
    </target>
</project>

< project > </ project >:最外层元素.(必要且唯一)
< target > </ target >:构建文件执行的基本单位,代表一个独立的任务,可存在多个,按照制定的顺序执行target .

依赖:
defalut:project属性, 默认的 target.
depends:依赖的目标.

property:
创建以及使用:

<property name="type" value="property" />
<echo message="${name}"/>

mkdir:

<mkdir dir="path+filename"/>

delete:

<delete dir="path+filename"/>

javac:

<javac srcdir="${src}" destdir="${dest}"/>

java:

<java classname="filename" classpath="${jar_path}"/>

使用实例: ( 编译运行HelloWorld )

<?xml version="1.0" ?>
<project name="Helloworld-target" default="run" basedir=".">
	<target name="compile">
                <mkdir dir="compile"/>
                <javac srcdir="./src" destdir="./compile"/>
        </target>

	<target name="run" depends="compile">
		<java classname="HelloWorld" fork="yes">
			<classpath path="./compile"/>
		</java>
		<delete dir="./compile"/>
	</target>
</project>

Junit—(junit4.x版本)

(Ecilips 自带)
JUnit是一个Java语言的单元测试框架。
特点

  • 提供断言来测试预期结果
  • 引用了注解的方式,进行单元测试

@Before 注解:在每个测试方法之前执行;
@After 注解:在每个测试方法之后执行;
@BeforeClass 注解:在所有方法执行之前执行;
@AfterClass 注解:在所有方法执行之后执行;
@Test(timeout = x) 注解:设置当前测试方法在一定时间内运行完,否则返回错误;
@Test(expected = Exception.class) 注解:设置被测试的方法是否有异常抛出。抛出异常类型为:Exception.class;
@Ignore 注解:注释掉一个测试方法或一个类,被注释的方法或类,不会被执行。

基本用法:

import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class TestJunit {
   @Test
   public void testPrintMessage() {
      	String exp_result = "result";
      	test_class class_example = new test_class();
    	assertEquals(exp_result,class_example.method());
   }
}

Useful API:

类名功能
Assertassert 方法的集合
TestCase定义了运行多重测试的固定装置
TestResult集合了执行测试样例的所有结果
TestSuite测试的集合

Assert

  • void assertEquals(variable expected, variable actual) 检查两个变量是否相等
  • void assertFalse(boolean condition) 检查条件为假
  • void assertNotNull(Object object) 检查对象不为空
  • void assertNull(Object object) 检查对象为空
  • void assertTrue(boolean condition) 检查条件为真
  • void fail() 在没有报告的情况下使测试不通过

使用实例:( 对四个函数进行测试 )

public class HelloWorldTest {

	@Test
	public void testadd() {
		assertEquals(6,new HelloWorld().add(3, 3));
	}
	@Test
	public void testsub() {
		assertEquals(0,new HelloWorld().sub(1, 1));
	}
	@Test
	public void testmul() {
		assertEquals(9,new HelloWorld().mul(3, 3));
	}
	@Test
	public void testdiv() {
		assertEquals(1,new HelloWorld().div(3, 3));
	}
}

与ant结合起来,进行自动测试:

<?xml version="1.0"?>

<project name="autotest" default="test">
	<target name="setproperty">
    		<property name="run.classpath" value="bin"></property>
         	<property name="run.srcpath" value="src"></property>
		<property name="test.srcpath" value="test"></property>
		<property name="test.classpath" value="/opt/eclipse/plugins/org.junit_4.12.0.v201504281640/junit.jar;/opt/eclipse/plugins/org.hamcrest.core_1.3.0.v20180420-1519.jar;${run.classpath}"></property>
	</target>        
	
	<target name="prepareDir" depends="setproperty">
         	<delete dir="${run.classpath}"/>
         	<mkdir dir="${run.classpath}"/>
     	</target> 	

	<target name="compilesrc" depends="prepareDir">
         	<javac srcdir="${run.srcpath}" destdir="${run.classpath}" includeAntRuntime="false"/>
	</target> 

	<target name="compiletest" depends="compilesrc">
         	<javac srcdir="${test.srcpath}" destdir="${run.classpath}" includeAntRuntime="false">
			<classpath path="${test.classpath}"/>
		</javac>
	</target>

	<target name="test" depends="compiletest">
         	<junit printsummary="yes">
             		<test name="HelloWorldTest"/>
             		<classpath path="${test.classpath}"/>
         	</junit>
     	</target> 
</project>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值