UWPでユニットテスト

公開日: : Blog, Microsoft , , ,

ユニバーサルWindowsのアプリケーションプロジェクトおよびクラスライブラリプロジェクトのユニットテストを行う際にはユニバーサルWindowsのテストプロジェクトを使用する必要がある。

uwput

なお、ユニバーサルWindowsから参照できるPCLプロジェクトの場合であれば、従来のユニットテストプロジェクトが利用できる。

ちょいメモ。

名前空間が異なる

  • 通常のユニットテスト
    Microsoft.VisualStudio.TestTools.UnitTesting名前空間

  • UWP用のユニットテスト
    Microsoft.VisualStudio.TestPlatform.UnitTestFramework名前空間

ExpectedExceptionが使えない

変わりにAssert.ThrowsExceptionを使用できる。
ちなみに、MSDNマガジンによればExpectedExceptionではなくAssert.ThrowsExceptionを使う方向に進んでいるらしい。

Moqが使えない

MicrosoftからSimpleStubsが提供されているのでNuGetする。
チュートリアルある。

テスト対象プロジェクトを参照してテストプロジェクトをビルドすると、テスト対象のプロジェクト内のインターフェースを走査してスタブクラスを自動生成してくれる。(SimpleStubs.generated.cs)
ただし、手動でプロジェクトに追加しなければ使えない。自動生成されたスタブはテストプロジェクトのPropertiesフォルダに生成される。
スタブクラスはInterfaceに定義されたイベントデリゲートに自分のインスタンスを渡そうとするので、極力EventHandlerを使ったほうが良さげ。
あと、outキーワードは自動生成時に解釈してくれないようなので、ビルドエラーが起きるスタブクラスが生成されてしまう。

関連記事

no image

Windows10 IoT CoreでWindowsアップデートの自動実行を停止する

Manage IoT Core device updates このリンクにアップデートコントロール

記事を読む

Visual Studio Team Services ダッシュボードを自動更新する

Visual Studio Team Services のダッシュボードでプロジェクトや運用状況のサ

記事を読む

拡張温度に対応した Windows 10 IoT Core ボード

Windows 10 IoT Core 対応ボード その2 こっちは拡張温度対応している。 Ban

記事を読む

no image

【iPhoneアプリ】Nend広告の実装メモ

広告枠の作成 https://www.nend.net/ 審査前アプリのURL iPhon

記事を読む

no image

【解決】Visual Studio 2015 Update1 の Xamarin.Forms でインテリセンスを使いたい

前回保留になっていた問題が解決したのでメモっときます。 Visual Studio 2015 Up

記事を読む

SIPSorceryにて、「型 ‘log4net.ILog’ が参照されていないアセンブリで定義されています。」

ある時、SIPクライアントの開発を行っていた。 SIPクライアントライブラリの選定にあたって S

記事を読む

シマンテックインストール時に「指定されたパスが空です。」

Windows10 64bit, Symantec Endpoint Protection はおそら

記事を読む

UWPをHockeyApp対応させる

走り書きメモ。 UWPをHockeyApp対応させるためにはNuGetパッケージを使ってモジュール

記事を読む

【iPhoneアプリ】リリース手順〜審査申し込み〜

初めてiPhoneアプリを作成したがリリース手順が 手元の参考書と全然違って困ったのでメモ。

記事を読む

【iPhoneアプリ】リリース手順〜審査完了後〜

前回からの続き。 中身が無いアプリだったのでリジェクトされると思いきや 審査に通ってしま

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑