Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

언어와 상관없이 모던한 개발 프레임워크 템플릿들은 유닛테스트를 기본적으로 포함하고 있습니다.

자신이 작성한 서비스 코드에 대한 유닛테스트가 없다고하면 , Nunit/xUnit 중 적합한 유닛테스트를 먼저 선택을 해야하며 

단순하게,작성한  OOP가 반환하는 값을 검사하는 유닛테스트의 수준을 넘어

도메인 로직중에 발생하는 실시간 메시지에대한 유닛테스트기를 어떻게 검증을 할것인가?

메시징 유닛테스트를 조금더 우아하게 할수있는 방법을 살펴보겠습니다 .

Actor Test Source : https://github.com/psmon/AkkaForNetCore/tree/master/AkkaNetCoreTest/Actors


Akka.net의 기본 유닛테스트 모듈이(메인개발자가 유지해주는) Xunit이여서, 유닛테스트 툴을 전환하였습니다. (이문서는 Nunit기준 설명됨)Xunit이며 Nunit 지원이 다소 늦어 , Xunit으로 전환하였습니다. 

Xunit 전환 전환코드 https://github.com/psmon/AkkaForNetCore/commit/71fd571fdf796d2cab1a8196a9ed505ff52a6cf4  


준비하기

Code Block
themeEmacs
titleNUnit 테스트 프로젝트 종속성
collapsetrue
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>

    <IsPackable>false</IsPackable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Akka.Cluster" Version="1.3.17" />
    <PackageReference Include="Akka.TestKit" Version="1.3.17" />
    <PackageReference Include="Akka.TestKit.NUnit3" Version="1.3.8" />
    <PackageReference Include="nunit" Version="3.12.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.15.1" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\AkkaNetCore\AkkaNetCore.csproj" />
  </ItemGroup>

</Project>

...