Page History
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Akka.Actor;
using Akka.Event;
using ServiceA.STUDY;
namespace AkkaTest
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
using (ActorSystem actorSystem = ActorSystem.Create("ServiceA")) //실제 서비스에서사용될 유사한 코드를 가지고 테스트
{
IActorRef myActor = actorSystem.ActorOf<BasicActor>("myactor");
Props watchProps = WatchActor.Props(myActor);
IActorRef watcher = actorSystem.ActorOf(watchProps, "watcher");
var result = myActor.Ask("나는 살아있다.").Result;
actorSystem.Stop(myActor); //myActor를 임의로 Stop하여, watcher가 종료를감시한는지 체크
myActor.GracefulStop(TimeSpan.FromSeconds(10)).Wait(); //생성한 Actor를 안전하게 종료시킨다.
}
}
}
}
|
...
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
using ServiceA.STUDY;
using Akka.TestKit.VsTest;
namespace AkkaTest
{
[TestClass]
public class UnitTest1 : TestKit //TestKit을 상속받습니다.
{
[TestMethod]
public void TestMethod1() //기본 유닛 테스트기
{
using (ActorSystem actorSystem = ActorSystem.Create("ServiceA"))
{
IActorRef myActor = actorSystem.ActorOf<BasicActor>("myactor");
Props watchProps = WatchActor.Props(myActor);
IActorRef watcher = actorSystem.ActorOf(watchProps, "watcher");
var result = myActor.Ask("나는 살아있다.").Result;
actorSystem.Stop(myActor); //myActor를 임의로 Stop하여, watcher가 종료를감시한는지 체크
myActor.GracefulStop(TimeSpan.FromSeconds(10)).Wait(); //생성한 Actor를 안전하게 종료시킨다.
}
}
[TestMethod]
public void TestMethod2() //Akka Tookit을 이용한 유닛테스트, 테스트기에 테스트를 할수 있는 액터가 추가됨
{
//실제 서비스코드와는 다른 패턴이기때문에, 학습용으로는 적당하지 않습니다.
var myActor = this.Sys.ActorOf<MyActor>("myActor"); //MyActor는 사용자의 메시지에 Re:+ 를 붙여 응답합니다.
var probe = this.CreateTestProbe();
myActor.Tell("Hello", this.TestActor);
ExpectMsg("Re:Hello", TimeSpan.FromSeconds(1));
}
}
} |
...