我有一個簡單的演員使用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)
?