在GraphDSL中断言

时间:2017-07-06 09:44:32

标签: java scala akka akka-stream

我正在使用akka流的graphDSL为我的测试框架创建一个DSL,但现在我正在寻找有效的方法,我认为它不适合。

我担心的是,当我在其中一个流程中创建一个断言(false)而不是传播测试中的错误时它会卡住

我不知道我做错了什么

我的DSL实现如下:

def given(message: String, musVersion: MUSVersion = ONE) = Source.single(new message(message, musVersion))


 def When(sentence: String) = Flow[message].map(message => {
    try {
      HttpClient.request(message._1, message._2)
    } catch {
      case e: Exception => {
        HttpResponse[String](e.getMessage, 500, Map())
      }
    }
  })

 def Then(sentence: String) = Sink.foreach[HttpResponse[String]](response => {
    assert(false)
    thenAction(sentence, response)
    println(s"######## $x")
  })

就像我说我的测试它被卡住而不是因为断言而将测试标记为失败。

这是我的测试代码:

class TestDSL extends MainDSL {

  private def generateKey(): String = s"""${UUID.randomUUID().toString}"""

  implicit val config = this.getRequestConfig("cassandra")

  val message: String = Messages.message(path = "cassandra", key = "Cassandra " + generateKey())

  info("This test has as requirement create and find an Entity using cassandra connector")
  feature("First DSL") {

    scenario(s"This is a prove of concept of the DSL") {

      RunnableGraph.fromGraph(GraphDSL.create() { implicit builder =>

        given(message) ~> When("I make a request") ~> Then("The return code='200'") ~> AndThen("The payload is not empty")
        ClosedShape

      }).run()
    }

  }

}

任何想法都错了吗?。

问候。

0 个答案:

没有答案