S#arpアーキテクチャプロジェクトで状態をテストするにはどうすればよいですか?S#arpアーキテクチャのテスト状態 - ベストプラクティス
たとえば、私はカスタムRoleProviderを持っています。私はメソッドprovider.AddUsersToRoles(文字列[]、文字列[])をテストしたい。
だから私はで始まる:
// Arrange
const string ficticiousRole = "Management";
var userToExpect = UserInstanceFactory.CreateValidTransientUser();
var roleToExpect = RoleInstanceFactory.CreateValidTransientRole();
userRepository.Expect(r => r.GetByUsername(userToExpect.Username))
.Return(userToExpect);
roleRepository.Expect(r => r.GetByName(ficticiousRole))
.Return(roleToExpect);
var userNames = new List<string>();
var roleNames = new List<string>();
userNames.Add(userToExpect.Username);
roleNames.Add(ficticiousRole);
その後、私はロールにユーザーを追加します。次に、ユーザーがこの役割にあるかどうかを確認します。
// Act
roleProvider.AddUsersToRoles(userNames.ToArray(), roleNames.ToArray());
var isNewUserInRole = roleProvider.IsUserInRole(userToExpect.Username, ficticiousRole);
// Assert
Assert.IsTrue(isNewUserInRole);
問題は私がRhino Mocksを使用していることです。私はRhino Mocksの知識は限られていますが、(Ayende Rahienによると)Rhino Mockを使用して、状態をテストするのではなく、動作をテストします。
私はメモリ内のSqlLiteデータベースがより適していると思いますか? S#arp Archでこれを行う最善の方法は何ですか?
それは私がクリスと思ったものです。ありがとう。私はちょうどそこにいくつかのメモリ内のデータベースがS#内にすでにセットアップされていると思っていました。 – autonomatt
Sharpでデータベース操作をテストする方法を説明するwikiエントリが見つかりました。基本的に、テストクラスはRepositoryTestBaseから継承します。詳細はこちらhttp://wiki.sharparchitecture.net/%28S%28qmzcoqrmp2gbmr45nfjqb1vo%29%29/Default.aspx?Page=Tutorial5RetriveResultsViaDao&AspxAutoDetectCookieSupport=1 – autonomatt