如何在junit中运行所有测试

时间:2014-05-02 04:59:16

标签: java eclipse unit-testing junit junit4

我正在尝试在eclipse中学习junit测试,并且我试图从简单的事情开始。我用2个方法编写了一个基本程序,一个加法和减法方法,它们都有2个参数。所以我尝试仅测试add函数,测试看起来像这样

import static org.junit.Assert.*;
import org.junit.Test;

public class addtest {

    @Test
    public void testAdd() {
        class1 calc = new class1();
        int expected = 7;
        int actual = class1.add(3, 4);
        assertEquals("adding 3 and 4 ", expected, actual);
        expected = 15;
        actual = class1.add(5, 10);
        assertEquals("adding 5 and 10 ", expected, actual);
    }
}

它按我的意愿工作。

但是当我试图实施第二次减法测试时,我注意到它似乎从未测试过那部分。我甚至尝试过第二种测试方法,以防我的减法方法不正确。这就是我最近的测试。

import static org.junit.Assert.*;
import org.junit.Test;

public class addtest {

    @Test
    public void testAdd() {
        class1 calc = new class1();
        int expected = 7;
        int actual = class1.add(3, 4);
        assertEquals("adding 3 and 4 ", expected, actual);
        expected = 15;
        actual = class1.add(5, 10);
        assertEquals("adding 5 and 10 ", expected, actual);
    }

    public void testMinus() {
        class1 calc = new class1();
        int expected = 0;
        int actual = class1.add(12, 4);
        assertEquals("subtracting 4 from 12", expected, actual);
    }

}

我注意到测试testMinus从不做任何事情,断言是否属实。我的实施有问题吗?我已经尝试将源文件夹作为junit测试运行,没有任何修复。

非常感谢您的帮助

编辑:我尝试注释掉第一个测试,所以我的测试函数里面只有testMinus,现在它正在测试第二个方法。在完成第一种方法后,程序是否有理由停止测试?

2 个答案:

答案 0 :(得分:4)

在你的minusTest方法之上添加@Test。它看起来像

@Test
public void testMinus() {
    class1 calc = new class1();
    int expected = 0;
    int actual = class1.add(12, 4);
    assertEquals("subtracting 4 from 12", expected, actual);
}

答案 1 :(得分:0)

`

@Test
public void testMinus() {
    class1 calc = new class1();
    int expected = 0;
    int actual = calc.add(12, 4); // Issue with current implementation, method should be called with instance of a class.
    assertEquals("subtracting 4 from 12", expected, actual);
}

`

所有Junit测试都应该使用@Test进行注释。