java - Junit 测试依赖方法

标签 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() ,但我不想要。

非常感谢任何帮助。

最佳答案

回复:但这似乎不对,因为它依赖于 setTable 工作。

你所做的事情是完全正确的。如果 getTableString() 是被测方法,那么隔离它的最佳方法是设置必要的前提条件。另外,通过将 setTable 调用放在这个测试方法中,您可以将这些条件隔离到这个测试中(而不是将调用放在 setup() 中,所有测试方法都会看到它)。

关于java - Junit 测试依赖方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26198875/

相关文章:

java - 如何解决以 ImageIO 插件为原因的 OutOfMemoryError?

java - 在 Java 中读取序列化对象时获取 EOFException

java - Hamcrest - 测试具有相同属性值的复杂对象的优雅方式

java - 如何在 JUnit 4 中编写assertTimeoutPreemptively (JUnit 5)?

java.lang.NoSuchMethodError : javaxservlet. http.HttpServletRequest.isAsyncStarted()Z

java - 为什么首选使用不可变对象(immutable对象)作为 Set 的元素?

java - 错误: Could not find or load main class - When running a JAR at the prompt

java - 如何获取另一个类的元素之间的元素计数?

java - eclemma 2 个分支中的 1 个未在 Junit 中覆盖

java - 如何设置PowerMockito来验证不同类型的方法被调用?