質問: VisualStudio2017上でxamarinを利用してアプリを作っています。 アプリのModel層でRealmを用いたデータ処理をおこなっております。 NuGetでRealm動作に必要なパッケージはソリューションないの全てのプロジェクトに インストール済みです。また、実機を用いての動作ではRealmは動作しております。 ユニットテストを行おうとしておりますが、PlatformNotSupportedExceptionが発生し ユニットテストが例外により止まってしまいます。 いまいち例外を理解はできておりません。。。 要約すると、環境上にRealmが無いからRealm導入してね!ということなのかと思いますが このあたりの対応方法がわかりません。 ``` 出力例外 メッセージ: System.TypeInitializationException : '' のタイプ初期化子が例外をスローしました。 ---- System.PlatformNotSupportedException : The PCL build of Realm is being linked which probably means you need to use NuGet or otherwise link a platform-specific Realm.dll to your main application. ``` 知りたいこと: xamarinとRealmを利用したプログラムのテスト手法の参考になるサイト もしくは、上記の問題を解決する手段を教えていただければと思い質問しました。
回答: VisualStudio上のユニットテストの実行はWindows上で実行しているのでNotSupportedとなるのだと思います。Realm for Windows的なのがあれば大丈夫なんですがそれはないので、Realでデータアクセスする部分はテストではモックなどに置き換えて行うか、ユニットテストをWindows上ではなくてデバイス上で行う方法があります。 デバイス上のテストについては自分のブログで申し訳ありませんが これが参考になるかもしれません。 この記事ではXamarin Studioのやり方ですが、xunit.runner.devicesを使えば同じようにできると思います。 デバイス上なのでRealmも動作します。