我在进行 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()
,但我不想要。
非常感谢任何帮助。
最佳答案
回复:但这似乎不对,因为它依赖于 setTable 工作。
你所做的事情是完全正确的。如果 getTableString() 是被测方法,那么隔离它的最佳方法是设置必要的前提条件。另外,通过将 setTable 调用放在这个测试方法中,您可以将这些条件隔离到这个测试中(而不是将调用放在 setup() 中,所有测试方法都会看到它)。
关于java - Junit 测试依赖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198875/