Java 模拟文件系统是必要的吗?
我已经为文件操作编写了一些业务逻辑,我需要编写一些集成测试来检查是否一切正常。因为时间不够,我只编写了Java 模拟文件系统是必要的吗?,java,unit-testing,mocking,Java,Unit Testing,Mocking,我已经为文件操作编写了一些业务逻辑,我需要编写一些集成测试来检查是否一切正常。因为时间不够,我只编写了@BeforeClass和@AfterClass方法,创建文件并在测试后删除它们(我不能使用流,因为部分功能是删除文件)。现在我有更多的时间,所以我想知道我的解决方案是否因为没有嘲笑而那么糟糕?如果是这样的话,我是否应该使用JUnit中的java.nio.file.FileSystem或TemporaryFolder的一些实现来将其视为适当的测试 提前感谢这取决于文件创建和删除是需要测试的逻辑的
@BeforeClass
和@AfterClass
方法,创建文件并在测试后删除它们(我不能使用流,因为部分功能是删除文件)。现在我有更多的时间,所以我想知道我的解决方案是否因为没有嘲笑而那么糟糕?如果是这样的话,我是否应该使用JUnit中的java.nio.file.FileSystem
或TemporaryFolder
的一些实现来将其视为适当的测试
提前感谢这取决于文件创建和删除是需要测试的逻辑的一部分,还是功能的副作用。
Java.NIO.file.FileSystem
就是一条出路TemporaryFolder
或类似的功能就可以了所以,可以肯定的是:如果我使用外部库进行这些操作,它会被归类为第二个变体?当然。单元测试应该模拟所有的测试合作者,而您不想测试外部库。因此,在你的情况下,这是一个副作用,然后验证不应该是测试的一部分。