我有一些共享夹具的测试,我想将测试彼此隔离开来。一种方法是将测试/示例名称用作“命名空间”的一部分(例如,作为目录路径的一部分)。
如何在其内部访问测试/示例名称?
例如:
class MySpec extends Specification {
"Something" should {
"do something" in {
// access String "do something"
}
"do something else" in {
// access String "do something else"
}
}
}
最佳答案
所以你可以通过两种方式做到这一点:
Specs2 允许您使用字符串作为片段的可选参数,因此您可以执行以下操作:
class MySpec extends Specification {
"Something" should {
"do something" in {
fragmentName: String =>
println(fragmentName) //prints do something
ok
}
"do something else" in {
fragmentName: String =>
println(fragmentName) //prints do something else
ok
}
}
}
还有一个 hacky 方法(我先玩了这个,但不能扔掉它): 已更新 这是@Eric 建议的“更好”的 hacky 版本
class MySpec extends Specification {
"Something" should {
"do something" in {
val fragmentName = is.examples(0).desc
println(fragmentName) //prints do something
ok
}
"do something else" in {
val fragmentName = is.examples(1).desc
println(fragmentName) //prints do something else
ok
}
}
}
关于scala - 如何访问 Specs2 中的测试/示例名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978565/