ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Windowsストアアプリ Tips(2):LicenseInformationの自動テスト

前回は試用版にを作る際のLicenseInformationの使い方を解説しました。試用版で怖いことが、本来お金を払ってくれるユーザー以外のために機能(または期間)を限定する機能を付加するため、購入版のほうにデグレが起きる可能性があることです。

このため、試用版と購入版の違いは入念にテストしたいところです。

前回は、試用版と購入版をXMLファイルで分けましたが、これをいちいちやるのは手間がかかるので、自動テストできないか調べてみました。

で、見つけたのが CurrentAppSimulator.ReloadSimulatorAsync() です。このメソッドは、設定のXMLファイルを読み込んで、その設定でシミュレーターをリロードしてくれる機能を提供しています。

コード

Windows ストアアプリの単体テストプロジェクトを作成し、次のようなテストを記述します。試用版設定の「license-trial.xml」と、購入版設定の「license-full.xml」の2つのファイルを用意し、それぞれテストの前に読み込ませます。

private static async Task ReloadSimulatorAsync( string fileName )

{

var file = await Package.Current.InstalledLocation.GetFileAsync( fileName );

await CurrentAppSimulator.ReloadSimulatorAsync( file );

}

[TestMethod]

public async Task 試用版ライセンス()

{

await ReloadSimulatorAsync( "Data\\license-trial.xml" );

Assert.IsTrue( CurrentAppSimulator.LicenseInformation.IsActive );

Assert.IsTrue( CurrentAppSimulator.LicenseInformation.IsTrial );

}

[TestMethod]

public async Task 購入版ライセンス()

{

await ReloadSimulatorAsync( "Data\\license-full.xml" );

Assert.IsTrue( CurrentAppSimulator.LicenseInformation.IsActive );

Assert.IsFalse( CurrentAppSimulator.LicenseInformation.IsTrial );

}

これで、無事に2つの環境で自動テストができるようになりました。

参考