Unit testing JUNIT跳过IO处理并仅验证逻辑

Unit testing JUNIT跳过IO处理并仅验证逻辑,unit-testing,junit,Unit Testing,Junit,在一次采访中,我被问到了一些类似的问题 所以基本上,问题是这样的: 您有如下方法: public void methodToBeTested() { //step 1 open file, if not exist create new one //step 2 String rst = reverseStr(); //step 3 write rst to file in step 1 } 因此,问题是如何编写一个单元测试来只测试reverseStr逻辑,而不必每次都

在一次采访中,我被问到了一些类似的问题

所以基本上,问题是这样的:

您有如下方法:

public void methodToBeTested() {
    //step 1 open file, if not exist create new one
    //step 2 String rst = reverseStr();
    //step 3 write rst to file in step 1
}

因此,问题是如何编写一个单元测试来只测试reverseStr逻辑,而不必每次都执行步骤1和步骤3的IO处理?

重构代码:提取方法
reverseStr
,并使其生效。此方法应包含所有逻辑(将一个字符串转换为另一个字符串)。还要使更改可见性至少为包私有。然后,您可以在测试中随意调用此方法,而不必处理文件

您可以共享整个类并解释问题的具体原因吗?没有完整的类。面试官首先让我执行reverseStr()。然后,她写了一个与上面类似的warper类。它调用reverseStr()。并询问如何在不调用IO处理程序的情况下编写单元测试。我想可能有一些JUNIT功能是我不知道的。但是,可能只是面试官太傻了。也许翻译过程中丢失了一些东西,但这对我来说毫无意义。如果您只想测试
reverseStr()
的功能,请为它编写一个测试-不要寻找神奇的方法来玩弄它的包装器方法。我认为您无法进行重构。