Spock:是否可以指定创建tempDir的位置?

时间:2016-02-29 10:37:14

标签: unit-testing groovy spock

spock中有一个有用的注释@TempDir,它可以帮助我们创建临时文件夹并自动删除它。注释类的全名如下:

com.github.goldin.spock.extensions.tempdir.TempDir

它通常在文件夹中创建临时文件夹,该文件夹定义为TMP环境变量。一个问题是:是否可以指定文件夹以某种方式创建临时文件夹的位置?

1 个答案:

答案 0 :(得分:0)

您可以使用@RestoreSystemPropertiesSystem.setProperty()

的组合
@RestoreSystemProperties
class TmpSpec extends Specification {

    def setup() {
        System.properties['java.io.tmpdir'] = "target/test"
        new File("target/test").mkdirs()
    }

    def "create a tmp file"() {
        given: "a tmp file"
            def file = File.createTempDir()

        expect:
            file.path.contains("target/test")

    }

}

如果您希望在测试期间对此功能进行更多控制,则可以创建自己的JUnit @Rule。