moq, wie zu testen die save-Methode?

Habe ich eine save () - Methode nicht wirklich sicher, wie Sie Sie zu testen. unten ist mein code.

public interface IRepository<T>
{
    T Get(int id);
    void Save(T item);
    void Delete(int id);
}

save-Methode keine return-Werte zurück, ich kann nicht vergleichen Sie den Wert. jedoch, ich habe bereits 4 Benutzer nach dem hinzufügen noch eines, das ich nur die Gesamtzahl der Nutzer, ist es genug, um es zu testen?

[Test]
public void Add_a_new_smoothie_user_should_return_total_5_users()
{
    //Arrange

    var totalUsers = _users.Count();

    _mockUserRepository.Setup(s => s.Save(It.IsAny<User>()))
        .Callback((User user) => _users.Add(user));

    var newUser = new User
                      {
                          Id = 3,
                          Email = "[email protected]",
                          Password = "1234567".Hash(),
                          Firstname = "",
                          Lastname = "",

                          CreatedDate = DateTime.Now,
                          LastLogin = DateTime.Now,

                          AccountType = AccountType.Smoothie,
                          DisplayName = "",
                          Avatar = "",
                          ThirdPartyId = "",
                          Status = Status.Approved,
                          Ip = "127.0.0.1"
                      };

    //Act

    _mockUserRepository.Object.Save(newUser);

    //Assert

    Assert.AreEqual(5, _users.Count());
    Assert.AreEqual(1, _users.Count() - totalUsers);
}
  • Können Sie skizzieren Ihre "speichern" - Methode? Haben Sie Ihre code-Abdeckung'? Ich glaube nicht, dass das hinzufügen von 'x' - Benutzer, um Ihre mock Validierung der Methode effektiv. Stattdessen sollten Sie konzentrieren sich auf Tests, werden alle Flüsse (Haupt -, alternative -, Ausnahme -, etc.) so, die code-coverage-ist relativ hoch.
  • Ich weiß nicht Recht bekommen es Sie moq repository save-Methode zum ausführen Ihrer Stellvertretung. Was du testen hier? Können Sie Anbieter im Test-code, der ausgeführt wird, in diesem test?
  • mein "save" - Methode nur speichert, einen neuen Benutzer für die Datenbank. Ich habe den code noch, nur die Schnittstelle. Ich dachte, Sie haben zu schreiben unit-test zuerst vor dem schreiben hte konkrete Methode.
InformationsquelleAutor qinking126 | 2012-07-12
Schreibe einen Kommentar