前一段时间老师让真理下有关单元测试的知识,因为我对java相对比较熟悉所以选择了JUnit4,下面是结合一些视频教程和网上一些资料整理的一些相关内容。
1、开发语言:java
2、单元测试框架:JUnit4
3、工具:eclipse
JUnit4是一个Java语言的单元测试框架。Junit4测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。
(1)建立Java Project并编写需要测试的功能类
(2)导入JUnit库,在项目右键->Build Path->Add Libraries->选择JUnit并点击next->选择JUnit4 并点击finish
(3)新建一个源代码目录来存放测试的代码
(4)编写测试方法并运行,测试代码上右键->Run As->JUnit Test
(5)根据结果分析代码中的问题
public class Calculate { public int add(int a, int b){ return a+b; } public int subtract(int a, int b){ return a-b; } public int multiply(int a, int b){ return a*b; } public int divide(int a, int b){ return a/b; } }
public class CalculateTest { @BeforeClass public static void setUpBeforeClass() throws Exception { System.out.println("this is beforeClass..."); } @AfterClass public static void tearDownAfterClass() throws Exception { System.out.println("this is afterClass..."); } @Before public void setUp() throws Exception { System.out.println("this is before..."); } @After public void tearDown() throws Exception { System.out.println("this is after"); } @Test public void testAdd() { //第一个参数为预期值,第二个参数为函数的计算结果 assertEquals(12, new Calculate().add(8, 4)); } @Test public void testSubtract() { assertEquals(4, new Calculate().subtract(8, 4)); } @Test public void testMultiply() { assertEquals(32, new Calculate().multiply(8, 4)); } @Test public void testDivide() { assertEquals(2, new Calculate().divide(8, 4)); } }
@RunWith(Suite.class) @Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class}) public class SuiteTest { //测试套件就是组织测试类一起运行的 }
@RunWith(Parameterized.class) public class ParameterTest { /* * 1.更改默认的测试运行器为RunWith(Parameterized.class) * 2.声明变量来存放预期值 和结果值 * 3.声明一个返回值 为Collection的公共静态方法,并使用@Parameters进行修饰 * 4.为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值 */ int expected =0; int input1 = 0; int input2 = 0; @Parameters public static Collection