我正在尝试编写一些集成测试。我想要实现的是设置几个假URL来模拟第三方服务。我想知道是否可以为测试设置动态URL路径。例如,我有这个代码
在测试的基础文件中我有这个
override lazy val port = 1234
val myappTestConf = Map (
"app.twilio.lookups" -> s"https://localhost:$port",
)
override lazy val port = 1234
implicit override lazy val app: FakeApplication =
FakeApplication(
additionalConfiguration = myappTestConf
)
然后在一个更具体的文件中我有这个
val getLookupPhoneUrl = s"${phoneNumber}"
implicit override lazy val app: FakeApplication =
FakeApplication(
additionalConfiguration = myappTestConf,
withRoutes = {
case ("GET", `getLookupPhoneUrl`) => Action(testLookupPhone(_))
}
)
我遇到的问题是这段代码没有编译,因为在第二个文件中还没有设置phoneNumber,但是我想设置dinamically,这可能吗?
谢谢
答案 0 :(得分:0)
该团队的一名成员用正则表达式解决了这个问题。这是答案
关于测试文件
val GetLookupPhone = """/v1/PhoneNumbers/([0-9\.\-]+)""".r
var phone: String = _
implicit override lazy val app: FakeApplication =
FakeApplication(
additionalConfiguration = educatinaTestConf,
withRoutes = {
case ("GET", GetLookupPhone(phone)) => Action(testLookupPhone(_, phone))
}
)
因此,如果路线与正则表达式匹配,则可以访问路径。