Java Web学习笔记(2015/7/13)

本文介绍了使用Maven命令行运行Java应用程序、增强测试能力的Hamcrest、测试组件的组合与运行、测试覆盖率分析工具Cobertura、数据库密码设置、数据库表信息查看、外部文件创建表、Eclipse与Maven集成、stub思想、dbunit数据测试、Win7环境下MySQL显示中文字符的方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、maven 命令行运行java应用程序
clean compile exec:java -Dexec.mainClass="com.wcy.App" 从包路径开始一直写到需要运行的类名,不需要加.class

二、hamcrest作用:
增强junit的测试能力,用一些相对通俗的语言来进行测试,如:

<!-- maven添加依赖,如果是手工导入,需将其jar包放置在junit的jar之前-->
<dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>1.3</version>
</dependency>
//静态导入文件
import static org.hamcrest.Matchers.*;
//判断50是否大于六十,并且小于20
Assert.assertThat(50, allOf(greaterThan(60), lessThan(20)));

三、testSuite作用
将多个类组成一个测试组件,运行testSuite,将执行多个test文件

package com.wcy;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

//表示这个类是一个suite类
@RunWith(Suite.class)
//说明这个类中包含的测试组件
@SuiteClasses({TestA.class,
            TestB.class,
            TestHello.class})

public class TestSuite {

}

四、测试原则:
每一个测试类均可以独立运行,测试类中每一个测试方法之间没有依赖关系
测试类的包与需要测试的类的包名一致

五、学习新知识方法
如junit,搜索junit in action 英文版的,中文的则为 junit实战

六、cobertura
测试你测试代码的覆盖率,还可显示各个类的哪个分支没有被测试(摘自http://blog.csdn.net/kongxx/article/details/7757571)

首先修改工程的pom.xml文件,添加cobertura-maven-plugin插件,如下:

<project>  
    ...  
    <reporting>  
        <plugins>  
            <plugin>  
                <groupId>org.codehaus.mojo</groupId>  
                <artifactId>cobertura-maven-plugin</artifactId>  
                <version>2.5.1</version>  
            </plugin>  
        </plugins>  
    </reporting>  
    ...  
</project>  

运行“mvn cobertura:help”, 如果不能运行,请添加以下仓库

<project>  
    ...  
    <pluginRepositories>  
        <pluginRepository>  
            <id>Codehaus repository</id>  
            <url>http://repository.codehaus.org/</url>  
        </pluginRepository>  
    </pluginRepositories>  
    ...  
</project>  

我是直接都添加了
下面是cobertura插件的命令

mvn cobertura:help 查看cobertura插件的帮助
mvn cobertura:clean 清空cobertura插件运行结果
mvn cobertura:check 运行cobertura的检查任务
mvn cobertura:cobertura 运行cobertura的检查任务并生成报表,报表生成在target/site/cobertura目录下的index.html文件中
cobertura:dump-datafile Cobertura Datafile Dump Mojo
mvn cobertura:instrument Instrument the compiled classes

七、安装完mysql后,为root 创建密码(win 7 cmd可用)
mysqladmin -u root flush-privileges password “newpwd”
修改root密码
mysqladmin -u用户名 -p password 新密码
然后输入旧密码即可
应该还有别的方法,不需要在命令行中输入新密码,这样太不安全了,暂时想不起来了。。。

八、mysql显示表中的列信息
desc 表名

九、mysql使用外部文件创建表
通过source init.sql 文件绝对路径(cmd 使用/分隔)创建表
init.sql 文件内容

create table if not exists t_user(
    id int(10) primary key auto_increment,
    username varchar(200),
    password varchar(200),
    nickname varchar(200)
)auto_increment=1

十、使eclipse使用本机上安装好的Maven,使软件的版本在自己可以控制的范围内
eclipse:Window–>Preference–>Maven–>Installations–>Add指定本机上安装好的Maven文件夹

十一、stub思想:
例如测试service时需要调用dao操作数据库,可以使用map或者其他东西模拟dao对数据库的操作,从而达到保护数据和测试代码的目的。

十二、dbunit
1、导入文件

<!-- 使用dbunit -->    
    <dependency>
        <groupId>org.dbunit</groupId>
        <artifactId>dbunit</artifactId>
        <version>2.5.1</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.1</version>
    </dependency>

2、测试数据文件t_user.xml,内含两种编写方式

<?xml version="1.0" encoding="UTF-8"?>

<dataset>
    <!-- <t_user>
        <id>1</id>
        <username>wcy</username>
        <password>wcy</password>
        <nickname>wcy</nickname>
    </t_user> -->
    <t_user id="1" username="wcy" password="wcy" nickname="wcy"></t_user>
</dataset>

3、创建dbunit connection
依赖于项目中所使用的connection

4、创建IDataSet,通过DataSet来获取测试数据中的数据
FlatXmlDataSet用来获取基于属性存储的属性值
XMLDataSet用来获取基于节点类型存储的属性值

IDatabaseConnection conn = new DatabaseConnection(DbUtil.getConnection());
            IDataSet ds = new FlatXmlDataSet(
                    new FlatXmlProducer(
                    new InputSource(
                    TestDbunit.class.getClassLoader().getResourceAsStream("t_user.xml"))));//可以选中代码,右键surround with添加try/catch

十三、win7 mysql数据库显示中文
不知道为什么配置文件怎么改都不好使,最后在创建数据库的时候指定编码

CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

jdbc访问数据库时也指定编码

DriverManager.getConnection("jdbc:mysql://localhost:3306/junit?useUnicode=true&characterEncoding=utf8",
                "root","password");

唉,先这么妥协了。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值