差分
編集の要約なし
動作環境に依存する[[ユーザーインターフェース]]と、非依存しない[[ビジネスロジック]]という考えである。
しかしならが、実際のところ猫も杓子も[[クラウドコンピューティング]]を叫ぶご時世であり、また[[オンプレミス]]の[[社内システム]]も[[スタンドアローン]]で動くものは皆無である。[[HTML5]]はもとより、[[iPhone]]や[[Android]]のアプリのような[[リッチクライアント]]を用いる場合でも、核となる[[ビジネスロジック]]は[[サーバー]]上に[[Web API]]として実装される案件ばかりである。
そうなると[[Xamarin]]ホゲホゲを使った[[リッチクライアント]]に対向する[[ビジネスロジック]]は[[ASP.NET Web API]]を用いて記述し、[[JSON]]や[[XML]]で[[データ]]のやりとりするのがもっとも手軽な実装方法であると思われ、このような状況下では[[クライアント]]も[[サーバー]]も[[Xamarin Studio]]で一元的に開発を行えると桁違いに捗り、[[Xamarin Studio]]に統合されている[[NUnit]]が活躍すること間違い無しである。
ASP.NET Web APIのユニットテストはAPIコントローラーの各メソッドを[[NUnit]]から直接呼び出す方法が手っ取り早い。
しかしながら、[[Basic認証]]などのテストをしたい場合などもあるので、ここではインメモリサーバーを使用した方法を示す。などのテストをしたい場合などもあるので、ここではASP.NET Web APIに含まれるインメモリサーバー(HttpServerクラス)を使用した方法を示す。テスト実行のために使用しているHttpClientクラスも地味に便利なので[[NUnit]]を使わない人も[[ググって]]みるといいと思う。
===手順1===
空のAPS.NETプロジェクトを作成する。
: Controllers/HelloController.cs
<source lang="csharp">
}
</source>
この例のPostメソッドでは単純な1個の[[引数]]のみを想定しているが、複数個になる場合はパラメータ用のクラスを作る、もしくはNewtonsoft.Json.LinqのJTokenクラスを使うのが望ましい。[[Xamarin]]系リッチクライアントとASP.NET Web APIの組み合わせの場合は、パラメータ用のクラス群を格納する共有用のライブラリプロジェクトを作り、それぞれのプロジェクトから参照して利用することで、[[インテリセンス]]などにより変数名のタイプミスなどの発見しづらい[[バグ]]を防ぐことができる。当然ながら[[JavaScript]]などから呼ぶ場合はタイプミスを防ぐ方法はないので手軽なJTokenを使う方法でも構わないと思う。
===手順2===
===手順3===
{{stub}}
[[category:.NET Framework]][[category: Xamarin.Studio]]