2017-02-17 5 views
0

私はXamarin.Formsで、realmを使って情報を保存しているアプリを作成しました。レアルでのXamarin UI /ユニットテスト

アプリケーションのログアウト機能が正しく機能していることと、レルムにデータがないことを確認するためのテストをいくつか書きたいと思っていました。

別の解決策では、Realm 0.82.1パッケージをインストールし、PCLソリューションへの参照を作成してテストを開始しました。マイグレーションが必要とされているように例外がスローされた機種変更した場合

は:

public static class RealmHelper { 
    public static Realm GetInstance() { 
     var config = new RealmConfiguration(Constants.REALM_FILE); 
     try { 
      return Realm.GetInstance(config); 
     } catch (Exception e) { 
      Debug.WriteLine(e.Message); 
      Realm.DeleteRealm(config); // Error Thrown here 
      return Realm.GetInstance(config); 
     } 
    } 
} 

をただし、このエラーがスローされ

System.PlatformNotSupportedException:レルムのPCLビルドは がリンクされているだろうNuGetを使用するか、プラットフォーム固有のRealm.dll をメインアプリケーションにリンクする必要があることを意味します。

私のテスト

[Test] 
public void CanInitDB() { 
    Assert.DoesNotThrow(() => 
    { 
     new DataAccessController(); 
    }); 
} 

は私のコントローラ

public class DataAccessController { 
    static Realm realm; 

    public DataAccessController() { 
     realm = RealmHelper.GetInstance(); 
    } 

    //... 
} 
+0

https://github.com/realm/realm-dotnet/issues/1059 – SushiHangover

答えて

0

レルムは、プラットフォーム固有の相手なしPCLのバージョンを使用してサポートしていません。あなたができることは、Xamarin's built-in test runnersを使用して、デバイス/シミュレータでテストを実行するために使用できるアプリケーションを生成することです。やや不便ですが、仕事を終わらせるべきです。

+0

私は実際にこのガイドに沿ってテストを設定しました。しかし、私はまだエラーが発生しています: '期待されている例外はありません。 しかし、(RealmのPCLビルドがリンクされているため、おそらくNuGetを使う必要があります。そうしないとプラットフォーム固有のRealm.dllをあなたの主なアプリケーションです。) ' テストスイートにプラットフォーム固有のdllをリンクするにはどうしたらいいですか? – Harry

+0

テストランナープロジェクトからレルムナゲットを参照する必要があります。 –

関連する問題