2017-06-14 12 views
0

私はAsyncFlatSpecを使用してみましたが、私は、ネストされたテストの問題を抱えています例あなたは上記を参照できるよう、テストは、ネストされたテストケースを実行するときには、空のテストスイートを言う..ネストされたテストケース

val testCasesFuture = Future[List[TestCases]] 

behavior of "Testcases" 
testCasesFuture.foreach(testCases =>{ 
    testCases.foreach(testCase =>{ 
     it should s"${testCase.name}" in { 
     testCase.assertions.foreach(assertion=>{ 
      assert(assertion.expected == assertion.actual) 
     }) 
    } 
    }) 
}) 

答えて

0

時間のデバッグの多くを過ごした後、私はようやく答えを見つけて、私はアサーションの内側に未来を移動し、それは問題を解決しました。ここで理解しやすいコードスニペットがあります

import org.scalatest.AsyncWordSpec 

import scala.concurrent.Future 

class FutureSpec extends AsyncWordSpec { 
    case class Assert(expected: Any, actual: Any) 
    case class Assertion(name: String, assert: Future[Assert]) 
    case class TestCase(name: String, assertion: List[Assertion]) 
    val testCases = List(TestCase("sample", List(Assertion("first", Future(Assert(1, 1)))))) 

    "TestCase" should { 
    testCases.foreach { testCase => 
     { 
     testCase.name should { 
      testCase.assertion.foreach(assertion => { 
      assertion.name in { 
       assertion.assert.map(a => assert(a.expected == a.actual)) 
      } 
      }) 
     } 
     } 
    } 
    } 
}