在此示例代码中,我有 2 个 Spec,并且我想对它们执行一些操作,然后我必须调用 @@ TestAspect.before 来进行这两个测试。如果测试数量增加,将 @@ TestAspect 添加到所有测试/套件听起来不是一个好主意,如何避免这种情况?
import zio._
import zio.test._
import zio.test.Assertion._
object WorldSpec extends ZIOSpecDefault {
def spec = suite("HelloWorldSpec")(
test("simple test") {
assertTrue(1 + 1 == 2)
}
) @@ TestAspect.before(
doBeforeFunctions
)
}
object UniverseSpec extends ZIOSpecDefault {
def spec = suite("HelloUniverseSpec")(
test("sayHello correctly displays output") {
assertTrue(2 + 2 == 4)
}
) @@ TestAspect.before(
doBeforeFunction
)
}
好吧,如果你愿意的话,你总是可以进行旧的子类化......
abstract class MySpec {
def actualSpec: Spec[TestEnvironment with Scope, Any]
override def spec = actualSpec @@ before(doBeforeFunction)
}
但是……为什么?在这一点上,似乎在每个规范中编写
@@ before
几乎不那么费力,而且很快,你就会变得更加分歧......