Wie kann ich den Status in einem S # arp Architecture-Projekt testen?Teststatus in S # arp Architektur - Best Practice
Zum Beispiel habe ich einen benutzerdefinierten RoleProvider. Ich möchte die Methode provider.AddUsersToRoles (string [], string []) testen.
So beginne ich mit:
// 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);
Dann habe ich den Benutzer zu einer Rolle hinzuzufügen. Dann überprüfe ich, ob der Benutzer in dieser Rolle ist.
// Act
roleProvider.AddUsersToRoles(userNames.ToArray(), roleNames.ToArray());
var isNewUserInRole = roleProvider.IsUserInRole(userToExpect.Username, ficticiousRole);
// Assert
Assert.IsTrue(isNewUserInRole);
Das Problem ist, dass ich Rhino Mocks benutze. Ich habe nur begrenzte Kenntnisse über Rhino Mocks, aber von dem, was ich verstehe (nach Ayende Rahien), benutzt du Rhino Mocks, um auf Operationen zu testen, nicht auf Zustände.
Also ich denke, eine In-Memory SqlLite db wäre besser geeignet? Was ist der beste Weg, dies in S # arp Arch zu tun?
Das dachte ich Chris. Vielen Dank. Ich dachte nur, dass bereits eine In-Memory-Datenbank in S # eingerichtet wurde. – autonomatt
Ich habe gerade einen Wiki-Eintrag gefunden, der beschreibt, wie man Datenbankoperationen mit Sharp testet. Im Grunde machen Sie Ihre Testklasse von RepositoryTestBase erben. Weitere Informationen finden Sie hier http://wiki.sharparchitecture.net/%28S%28qmzcoqrmp2gbmr45nfjqb1vo%29%29/Default.aspx?Page=Tutorial5RetriveResultsViaDao&AspxAutoDetectCookieSupport=1 – autonomatt