수색…
소개
Universal Windows 10 Application에 대한 단위 테스트를 만드는 방법을 알려드립니다. UWP 애플 리케이션을 테스트하기 위해 필자는 xUnit.net Framework을 사용할 것이다. 여기서는 비고 섹션에서 제공 한 링크에서 더 많은 것을 읽을 수있다.
비고
xUnit Framewwork에 대한 자세한 내용은 https://xunit.github.io/docs/getting-started-uwp.html을 참조하십시오.
테스트 응용 프로그램 구성
UWP 응용 프로그램을 테스트 할 준비가되면 솔루션에 테스트 응용 프로그램을 추가해야합니다. 그것을 "오른쪽"솔루션을 클릭하고 "Unit Test App (Universal Windows)"를 선택하십시오 :
솔루션에 추가 한 후에는 구성 단계가 더 이상 필요하지 않습니다. 대상 및 최소 플랫폼 버전을 선택하라는 메시지가 표시됩니다.
일단 그들을 선택하면 "project.json"파일을 열고 아래의 의존성을 추가하십시오 :
"dependencies":
{
"Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0",
"xunit.runner.visualstudio": "2.1.0",
"xunit": "2.1.0",
"xunit.runner.devices": "2.1.0"
}
UWP 어플리케이션을위한 유닛 테스트를 쉽게하기 위해 NuGet xUnit Framework 패키지를 다운로드하고 추가하는 데 사용됩니다.
"MSTestFramework.Universal"이라는 참조를 제거하십시오.
이제 "UnitTest.cs"파일을 엽니 다. 아래와 같이 수정하십시오.
using System;
using Xunit;
namespace UnitTestsForUwp
{
public class UnitTest1
{
[Fact]
public void TestMethod1()
{
Assert.Equal(4, 4);
}
[Theory]
[InlineData(6)]
public void TestMethod2(int value)
{
Assert.True(IsOdd(value));
}
bool IsOdd(int value)
{
return value % 2 == 1;
}
}
}
}
xUnit 속성에 대해 잠깐 이야기하는 것이 좋습니다.
에이. 항상 사실 인 사실 테스트. 그들은 불변 조건을 테스트합니다.
비. 이론 - 특정 데이터 집합에만 적용되는 테스트.
이제 테스트에 대한 정보를 표시하도록 앱을 준비하고 싶습니다. 테스트를 시작하는 좋은 방법이있는 것이 좋습니다. 이를 달성하기 위해 "UnitTestApp.xaml"파일에서 약간의 변경을 수행해야합니다. 그것을 열고 모든 코드를 아래 붙여 넣기로 바꿉니다 :
<ui:RunnerApplication
x:Class="UnitTestsForUwp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UnitTestsForUwp"
xmlns:ui = "using:Xunit.Runners.UI"
RequestedTheme="Light">
</ui:RunnerApplication>
"local"은 네임 스페이스와 같은 이름을 가져야한다는 것을 기억하십시오.
이제 "UnitTestApp.xaml.cs"를 열고 코드를 다음과 같이 바꿉니다.
sealed partial class App : RunnerApplication
{
protected override void OnInitializeRunner()
{
AddTestAssembly(GetType().GetTypeInfo().Assembly);
InitializeRunner();
}
partial void InitializeRunner();
}
그게 다야! 이제 프로젝트를 다시 빌드하고 테스트 응용 프로그램을 시작하십시오. 아래에서 볼 수 있듯이 모든 테스트에 액세스 할 수 있으므로 테스트를 시작하고 결과를 확인할 수 있습니다.
테스트 응용 프로그램을 대상 앱 코드와 연결
테스트 애플리케이션이 준비되면 유닛 테스트를 작성하려는 코드와 연결할 수 있습니다.
PCL 또는 UWP 앱 프로젝트에서 코드를 작성했는지 (MVVM 패턴을 적용했다고 가정) 테스트 애플리케이션 프로젝트에서 참조를 추가하기 만하면된다.
이제 Test Application에서 모든 코드에 액세스 할 수 있습니다. 원하는 단위 테스트를 만듭니다. "사실"또는 "이론"을 사용하십시오.
일부 기능 모의하기
단위 테스트를 작성할 준비가 되었으면 조롱에 대해 언급 할 필요가 있습니다. "SimpleStubs"라는 새로운 프레임 워크가있어서 인터페이스를 기반으로 모의 객체를 만들 수 있습니다.
GitHub 문서의 간단한 사례 :
//Sample interface:
public interface IPhoneBook
{
long GetContactPhoneNumber(string firstName, string lastName);
long MyNumber { get; set; }
event EventHandler<long> PhoneNumberChanged;
}
//Mocked interface:
var stub = new StubIPhoneBook().GetContactPhoneNumber((firstName, lastName) => 6041234567);
자세한 내용은 https://github.com/Microsoft/SimpleStubs를 참조 하십시오.