ファイルを掴んでいる(オープンしている)プロセスの情報を表示するツール「Clutch Ver 1.0.0」をリリースしました。
ソフトウェアの概要や使い方はリンク先をご覧ください。
ファイルを掴んでいる(オープンしている)プロセスの情報を表示するツール「Clutch Ver 1.0.0」をリリースしました。
ソフトウェアの概要や使い方はリンク先をご覧ください。
リポジトリを利用するクラスで、データ更新行うメソッド void Update(int Id, int quantity) (キーが Id のレコードの hoge 数値フィールドに quantity の値を加算する)について、hoge 数値フィールドに quantity の値が加算された数値で更新が行われることをテストする場合、リポジトリの更新メソッド呼び出しの引数をチェックすることが考えられます。ただし、本物のリポジトリを呼び出すと DB が更新されてしまうので、モック・ライブラリを利用しますよね。モック・ライブラリの一つである Moq を利用した場合、モックインスタンス.VerifyAll() メソッドでメソッドの呼び出しと引数の確認が行えますが、引数がクラスの場合、参照するインスタンスについての比較になってしまうので、何もしなければ引数のインスタンスと比較用のインスタンスは別物ということで、検証失敗になります。
これを回避するため、比較用のインスタンスを Equals メソッドをオーバーライドしたクラスから生成させ、比較するプロパティをリフレクションを用いることで、明示的に指定しないようにしてみました(モデルを変更した時のテストコードの比較部分の更新し忘れ対策 😛 )。
続きを読む リポジトリを利用するクラスに対する Moq を利用したメソッドの引数のテスト
Entity Framework のコードファーストを用いて RDB を生成する際に、POCO エンティティクラスに decimal 型のプロパティがあった場合、生成されるテーブル上のマッピングされた列の型は numeric(18,2) となります。小数点以下の桁数が2桁より多いものを格納したい場合、Fluent API を使用することで有効桁数と小数点以下の桁数を設定することができます。この方法は Stack Overflow に質問と回答がありましたが、日本語で書かれた情報はないようなので、サンプルプログラムとともに書いておきます。 続きを読む Entity Framework コードファーストでの decimal 型の小数部桁数の設定