我有一些共享夹具的测试,并希望将测试彼此隔离。一种方法是使用测试/示例名称作为“命名空间”的一部分(例如,作为目录路径的一部分)。
如何在自身内访问测试/示例名称?
例如:
class MySpec extends Specification {
"Something" should {
"do something" in {
// access String "do something"
}
"do something else" in {
// access String "do something else"
}
}
}
答案 0 :(得分:3)
所以你可以这两种方式:
Specs2允许您使用字符串作为Fragments的可选参数,因此您可以执行以下操作:
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
}
}
}