サーチ…


前書き

Universal Windows 10 ApplicationのUnit Testsを作成する方法をお見せしたいと思います。 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"
 }

これらは、NuGet xUnit Frameworkパッケージをダウンロードして追加するために使用され、UWPアプリケーションの単体テストを容易にします。

"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の属性についてちょっとお話をしてください。

a。常に真実である事実検定。彼らは不変条件をテストする。

b。理論 - 特定のデータセットに対してのみ当てはまるテスト。

今、私たちはテストに関する情報を表示するようにアプリを準備したいと思っていますが、テストを開始するには良い方法があるだけでなく、そのためには、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パターンを適用したと仮定します)。テストアプリケーションプロジェクトで参照を追加するだけです。

ここに画像の説明を入力

これで、テストアプリケーションからすべてのコードにアクセスできます。必要なユニットテストを作成します。単に「事実」や「理論」を使用してください。

一部の機能をモックする

ユニットテストを書く準備が整ったら、嘲笑について言及する価値があります。 "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



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow