2016-04-21 303 views
2

如何構建與akka.net的鬆散耦合?假設我有一個使用Akka.net的MVC應用程序,並且我希望能夠在不使用真正的actor系統的情況下測試MVC應用程序中的控制器。有點像當你想用moq實現一個數據訪問存儲庫來測試一個業務層。通常在這種情況下,您可以爲存儲庫定義一個intervace,並且您可以在沒有具體存儲庫的情況下進行測試。依賴注入akka.net

在這種情況下,我想測試我的MVC應用程序而不使用實際的actor系統。如果MVC應用程序與遠程參與者系統交互,這可能尤其相關。在這種情況下,我想要某種界面來表示對遠程角色系統和角色的訪問。

回答

0

ActorSystem實現IActorRefFactory

public interface IActorRefFactory 
{ 
    IActorRef ActorOf(Props props, string name = null); 
    ActorSelection ActorSelection(ActorPath actorPath); 
    ActorSelection ActorSelection(string actorPath); 
} 

這應該允許您使用模擬框架選擇的,嘲笑的ActorSystem和有回報模擬IActorRefs你的控制器進行交互。