惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
TaoSecurity Blog
TaoSecurity Blog
P
Palo Alto Networks Blog
S
Securelist
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
WordPress大学
WordPress大学
S
Schneier on Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Privacy International News Feed
Security Latest
Security Latest
NISL@THU
NISL@THU
Cyberwarzone
Cyberwarzone
I
Intezer
Hugging Face - Blog
Hugging Face - Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
博客园_首页
Know Your Adversary
Know Your Adversary
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
博客园 - Franky
月光博客
月光博客
GbyAI
GbyAI
G
Google Developers Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
Google Online Security Blog
Google Online Security Blog
S
Security Affairs
K
Kaspersky official blog
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
T
Troy Hunt's Blog
阮一峰的网络日志
阮一峰的网络日志
大猫的无限游戏
大猫的无限游戏
The GitHub Blog
The GitHub Blog
T
Threat Research - Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 司徒正美
Cloudbric
Cloudbric
Blog — PlanetScale
Blog — PlanetScale
博客园 - 叶小钗
U
Unit 42
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Check Point Blog
G
GRAHAM CLULEY

博客园 - 摆渡人 外婆桥!

此BLOG不再继续了,请访问http://www.blogjava.net/swingboat 在Oracle中,快速获取一个部门以及它下面所有的子部门的方法。 cache模式的两种构成方式 OsWorkFlow学习(FSM:有限状态机) OsWorkFlow学习(概念) OsWorkFlow学习(数据库设置) 知识 企业如何确定是否需要BPM(出自:计世网) jsp页面,以excel的方式输出 - 摆渡人 外婆桥! - 博客园 在jboss4环境下,URL查询参数中支持中文 - 摆渡人 外婆桥! - 博客园 使用Junit时源代码和测试代码的组织(摘自Daping_Zhang 的 Blog ) 利用html中的div标签实现网页中某一块区域的自动滚动 struts及jstl使用问题集(一) 在struts框架下实现文件的上传 利用jspsmartupload上传文件,当我不选择文件就直接上传,会有什么结果呢?一个字“惨”啊! 软件工程中的经典案例! 利用edtftpj组件实现FTP文件的上传。 含有中文字符串的截取问题! 在struts1.1框架下,利用smartupload实现文件的上传(可以是多个文件)
junit的使用
摆渡人 外婆桥! · 2005-06-21 · via 博客园 - 摆渡人 外婆桥!

背景:当我们写完一个类的时候,需要对类的某些方法进行测试。我以前的做法是在类的main函数中,new一个类的实例,然后调用类的方法进行测试。当需要测试的方法越来越较多的时候,main函数也在逐渐的变大,最后连自己都糊涂了。这时候就需要junit了。
编码原则:
        从技术上强制你先考虑一个类的功能,也就是这个类提供给外部的接口,而不至于太早陷入它的细节。这是面向对象提倡的一种设计原则。
如果你要写一段代码:
1. 先用 junit 写测试,然后再写代码
2. 写完代码,运行测试,测试失败
3. 修改代码,运行测试,直到测试成功
编写步骤:如下图

测试代码:
package yhp.test.junit;

import junit.framework.*;
public class TestCar extends TestCase {
    protected int expectedWheels;
    protected Car myCar;
    public TestCar(String name) {
        super(name);
    }
    protected void setUp(){  //进行初始化任务
        expectedWheels = 4;
        myCar = new Car();
    }
    public static Test suite()    {//JUnit的TestRunner会调用suite方法来确定有多少个测试可以执行
        return new TestSuite(TestCar.class);
    }
    public void testGetWheels(){//以test开头,注意命名
        assertEquals(expectedWheels, myCar.getWheels());
    }
}

以下是通过eclipse自带的junit工具产生的代码:
package yhp.test.junit;
import junit.framework.TestCase;
public class TestCar2 extends TestCase {
    protected int expectedWheels;
    protected Car myCar;
    public static void main(String[] args) {
        junit.textui.TestRunner.run(TestCar2.class);//TestCar是个特殊suite的静态方法
    }
    protected void setUp() throws Exception {
        super.setUp();
        expectedWheels = 4;
        myCar = new Car();
    }
    protected void tearDown() throws Exception {
        super.tearDown();
    }
    public TestCar2(String arg0) {
        super(arg0);
    }
    public final void testGetWheels() {
        assertEquals(expectedWheels, myCar.getWheels());
    }
}

当有多个测试类的时候,系统能进行统一测试,这时可以利用TestSuite来实现。可以将TestSuite看作是包裹测试的一个容器。
通过eclipse自带的工具生成的代码如下:
package yhp.test.junit;
import junit.framework.Test;
import junit.framework.TestSuite;

public class AllTests {
     public static Test suite() {
        TestSuite suite = new TestSuite("Test for yhp.test.junit");
        //$JUnit-BEGIN$
        suite.addTest(TestCar.suite());         //调用的方法,参数不一样,实际是一致的。
        suite.addTestSuite(TestCar2.class);  //
        //$JUnit-END$
        return suite;
    }
}