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

Azure へ WordPress 環境を作成

よくあるやつだけど。 社内LT用

記事を読む

拡張メソッドは、非ジェネリック静的クラスで定義される必要があります

単純にメッセージどおり。 public static class BaseExtensi

記事を読む

no image

【WPF/XAML】Visibility変更時のアニメーション切替

ストーリーボードを使わずに、Visibility変更でアニメーションを発生させたかった。 やってる

記事を読む

no image

Expression Encoder を組み込んだアプリケーションを配布する際のライセンス問題

Windowsアプリケーションにメディア編集機能を実装したい場合に、Expression Encod

記事を読む

no image

‘System.Windows.Navigation.BaseUriHelper’ のタイプ初期化子が例外をスローしました。

作成した.NETアプリケーション(WPF)が起動しない。 今回は構成ファイル(app.config)

記事を読む

Xamarin.FormsのTabbedPageでバッジを表示する

iOSのタブバーはNative側でバッジ機能があるのだが、Androidにはそもそもバッジが無いらし

記事を読む

no image

Microsoft.OData.Clientでフォーム認証を行う

構成 サーバー ** Azure API Apps ** ASP.NET Web API クライ

記事を読む

no image

Windows 10 IoT 系の概要、エディション、入手方法などを一度整理

Windows 10 IoT にここ最近振り回されているので、ここまで解釈した内容にて、まとメモ 正

記事を読む

no image

【.NET】正規表現の復習

正規表現エンジン System.Text.RegularExpressions.Regexオブジェ

記事を読む

【iPhoneアプリ】自分のiPhoneへインストールする方法

自作のiPhoneアプリを自分のiPhone上で動作させたい場合の手順をメモ ・iOS Dev

記事を読む

Message

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

PAGE TOP ↑