前回は試用版にを作る際の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つの環境で自動テストができるようになりました。