Junit测试依赖方法

时间:2014-10-05 01:50:31

标签: java junit

我遇到Junit测试问题,可以在网上找到很少的信息。

首先,我想测试2种方法,

1。setTable(int r, int c, String s)

2。getTableString()

我设法测试了第一个,但是第二个要求已经构建了表(表是带有getter的private static char[][],并且是由第一个方法构建的。)

如何测试第二种方法?我想过这样做:

    public void testGetTableString() {

        MyClass test = new MyClass();
        test.setTable(5, 4, "string");
        String toTest = test.getTableString();
        assertEquals("expected result", toTest);
    }

然而,这似乎并不正确,因为它依赖于setTable工作。

我还想过在setUp()方法中初始化test.setTable(5,4,"string"),但这意味着我必须在setTable方法中更改每个setUp()的参数时间而不能跟踪我的测试;加上我的第一种方法setUp(),我也不想要。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

RE:然而这似乎不对,因为它依赖于setTable工作。

你所做的是完全合适的。如果getTableString()是被测方法,那么隔离它的最佳方法是设置必要的前置条件。此外,通过将setTable调用置于此测试方法中,您已将这些条件隔离到此一个测试(而不是将调用置于setup()中,这将被所有测试方法看到)。

答案 1 :(得分:1)

仅仅因为你有两种方法(测试)并不意味着必须有两种方法来测试它们。你可以在一次junit测试中加入。

由于它们是相关的,因此除非您使用setXY

进行验证,否则您无法真正说getXY有效
相关问题