Xamarin.FormsのPCLのユニットテストをやってみる。
なお、PCLでテストできるのはロジック部分のみ。
UIやプラットフォーム固有のもの(デバイスまわりとか)をテストする場合は、各プラットフォーム向けの単体テスト用プロジェクトを作成する必要あり。
単体テスト用プロジェクトを作成
[その他][.NET]にある[NUnit ライブラリ プロジェクト]を選択して新規プロジェクトを作成する。
参照を追加
担当テスト用プロジェクトの[参照]に、テスト対象にするPCLプロジェクトを追加する。
こんな感じ。
テストモジュール作成
まず、テストしたいクラスはこれ。
これはPCLプロジェクトにある。
MyService.cs
namespace MyApp.Services
{
public class MyService
{
public string Greet()
{
return "Hello from MyService.";
}
}
}
で、単体テスト用プロジェクトに、Test.csをリネームするなりして、このような↓↓↓クラスを作成。
MyServiceTest.cs
using NUnit.Framework;
using System;
using MyApp.Services;
namespace MyApp.UnitTest
{
[TestFixture()]
public class MyServiceTest
{
[Test()]
public void TestGreet()
{
MyService service = new MyService();
Assert.AreEqual("Hello from MyService.", service.Greet());
}
}
}
テスト実行
単体テスト用プロジェクトを選択した状態で、メニューバーの[実行][単体テストを実行する]を選択する。
するとテストが実行され、結果が[テスト結果]ペインに表示される。
グリーンです。OKですね。
とりあえずは以上です。
こちらを参考にしました
Testing with Xamarin Forms
https://forums.xamarin.com/discussion/21504/testing-with-xamarin-forms