我收到错误“临时文件夹尚未创建”,该错误来自TemporaryFolder.getRoot()方法抛出的IllegalStateException。看起来它没有初始化,但我的研究表明,当临时文件夹在setUp()方法中初始化时,通常会出现这种情况。但是在我看来,像我一样将它与@Rule一起使用应该可行。有什么想法吗?测试类publicclassFileReaderTestextendsTestCase{@RulepublicTemporaryFolderfolder=newTemporaryFolder();publicFileReaderTest(StringtestName){su
我想创建一个JUnitTemporyFolder来表示这样一棵树的baseFolder:baseFolder/subFolderA/subSubFolder/subFolderB/file1.txt据我所知,我可以设置一个临时文件夹,然后可以使用“newFolder()”创建位于该文件夹中的伪文件夹。但是我怎样才能在下面创建图层呢?特别是在测试后清理的方式。 最佳答案 temporaryFolder.newFolder(String...folderNames)将整个层次结构作为参数:@RulepublicTemporaryFold
我已经在其中一个测试类中定义了两个规则,但奇怪的是一次只有其中一个起作用——最后定义的那个。@RulepublicExpectedExceptionexception=ExpectedException.none();@RulepublicTemporaryFolderfolder=newTemporaryFolder();我一辈子都想不通如何定义两个或多个规则并分别使用它们 最佳答案 我有同样的问题,我发现在那种情况下你可以使用RuleChain,就像这样:publicTemporaryFoldertemp;publicExpec
我在这里遇到了一个奇怪的问题......我有一个JUnit实现了一些测试。该类如下所示:publicclassMyTest{@RulepublicTemporaryFolderfolder=newTemporaryFolder();@TestpublicvoidmyTest1()throwsIOException{StringdestinationPath=folder.newFile("destination1.txt").getPath();//Dothings}@TestpublicvoidmyTest2()throwsIOException{StringdestinationP
我有一个类可以对磁盘上的文件进行操作。更确切地说,它遍历一个目录,读取具有给定后缀的所有文件并对数据进行一些操作,然后将它们输出到一个新文件。我有点怀疑如何为这门课设计单元测试。我正在考虑让设置方法在/tmp/somefolder中创建一个临时目录和临时文件,但我怀疑这是一个坏主意,原因有几个(开发人员使用Windows、文件权限等)。另一个想法是通过使用接口(interface)封装类然后提供模拟对象来模拟我用来写入和读取磁盘的类,但这似乎有点困惑。解决此类问题的标准方法是什么? 最佳答案 如果使用JUnit4.7及更高版本,您可
这个问题在这里已经有了答案:ComparingtextfileswithJunit(9个回答)关闭9年前。我想在我正在进行的一个小项目上实现JUnit,因为我想了解一点。我阅读的教程都提到了具有特定输出的方法。在我的情况下,我的输出是文件,我该怎么做?任何简单的例子?有什么方法可以帮助我解决这个问题?这些文件是由void私有(private)方法构建的原始文本文件。 最佳答案 您希望为给定的一组输入获取正确的输出文件,并设置一个测试以使用这些输入调用您的void方法,然后将您验证的输出文件与您的方法生成的文件进行比较。你需要确保你有
这个问题在这里已经有了答案:ComparingtextfileswithJunit(9个回答)关闭9年前。我想在我正在进行的一个小项目上实现JUnit,因为我想了解一点。我阅读的教程都提到了具有特定输出的方法。在我的情况下,我的输出是文件,我该怎么做?任何简单的例子?有什么方法可以帮助我解决这个问题?这些文件是由void私有(private)方法构建的原始文本文件。 最佳答案 您希望为给定的一组输入获取正确的输出文件,并设置一个测试以使用这些输入调用您的void方法,然后将您验证的输出文件与您的方法生成的文件进行比较。你需要确保你有
我使用在Junit测试用例中运行的嵌入式服务器。有时这些服务器需要一个工作目录(例如ApacheDirectory服务器)。Junit4.7中的新@Rule可以处理这些情况。TemporaryFolder-Rule可以创建一个临时目录。可以为服务器创建自定义ExternalResource-Rule。但是如果我想将结果从一个规则传递到另一个规则,我该如何处理:importstaticorg.junit.Assert.assertEquals;importjava.io.*;importorg.junit.*;importorg.junit.rules.*;publicclassFold
我使用在Junit测试用例中运行的嵌入式服务器。有时这些服务器需要一个工作目录(例如ApacheDirectory服务器)。Junit4.7中的新@Rule可以处理这些情况。TemporaryFolder-Rule可以创建一个临时目录。可以为服务器创建自定义ExternalResource-Rule。但是如果我想将结果从一个规则传递到另一个规则,我该如何处理:importstaticorg.junit.Assert.assertEquals;importjava.io.*;importorg.junit.*;importorg.junit.rules.*;publicclassFold
JUnit'sTemporaryFolderrule的文档声明它创建的文件和文件夹是"guaranteedtobedeletedwhenthetestmethodfinishes(whetheritpassesorfails)"但是,断言TemporaryFolder不存在会失败:importstaticorg.junit.Assert.*;importorg.junit.After;importorg.junit.Before;importorg.junit.Rule;importorg.junit.Test;importorg.junit.rules.TemporaryFolder