我有一个简单的演员使用ScalaQuery来查询数据库,我嘲笑了一个使用它的客户端的测试。发送一个无从一个演员返回给调用者
我想要的是(模拟)演员如果ID匹配回复Some(MyObject)
,否则None
。但是,我无法弄清楚如何使这项工作。下面的代码我到目前为止:
def receive = {
case FetchSomething(someId) => {
if (someId == 1234) self.channel ! someObject
else self.channel ! None
}
}
然而,而不是在客户端代码返回None
,它返回Some(None)
- 这,当然,混淆我的客户。我多么希望在客户端的工作是这样的:
val object = persister !! FetchSomething(1337) match {
case myObject: Some[MyObject] => myObject
case _ => None
}
(当然,上述可能只是错误的 - 而不是Some
,也可能是Option
)
我怎样才能做到这一点?也许更具体一点,我怎样才能通过self.channel发回None
,所以匹配时它是None
而不是Some(None)
?