我的方法getUsers()
带有可选参数stat
,此参数代表单个状态代码。如果未提供参数stat
,我希望该功能使用getOrElse
检查多个状态代码。这是我目前的代码,但不起作用:
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class UnitTestActions {
def getUsers(stat: Option[Int]) = {
exec(http("[GET] /users")
.get("/users")
.check(status.in(stat getOrElse(Seq(200, 405)))))
}
}
以下部分工作:
check(status.in(stat getOrElse 200, 405))
当stat
不时,它会检查200和405,这很好。
但是,当提供stat
时,会检查stat
和 405,这不是理想的结果。
我尝试了各种各样的事情,但每次收到错误cannot be applied to (Any)
。有人可以帮助我吗?
答案 0 :(得分:1)
Option
的{{1}}方法具有以下签名:
getOrElse
它需要相同类型或超类型。所以,在这里,您可以将传递给final def getOrElse[B >: A](default: ⇒ B): B
的可选Int
映射到此处:
Seq[Int]
或者您可以传递stat.map(s => Seq(s)).getOrElse(defaults)
,之后您可以默认传递多种状态:
Option[Seq[Int]]
在这里,您的代码应该保持不变。