如何测试 S#arp 架构项目中的状态?
例如,我有一个自定义 RoleProvider。我想测试方法 provider.AddUsersToRoles(string[], string[])。
所以我开始:
// 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 Mocks 来测试操作,而不是状态。
所以我想内存中的 SqlLite 数据库会更合适?在 S#arp Arch 中执行此操作的最佳方法是什么?