Testing und mocking private/protected-Methoden. Viele Beiträge aber noch nicht machen, ein Beispiel der Arbeit

Ich habe gesehen, viele Beiträge und Fragen über "die Verspottung einer privaten Methode" ist aber immer noch nicht seine Arbeit machen und nicht eine wirkliche Antwort.
Lässt den code vergessen Geruch und Sie sollten es nicht tun etc....

Aus, was ich verstehe, habe ich Folgendes getan:

1) Erstellt eine Klasse Bibliothek "MyMoqSamples"

2) Hinzugefügt ref Moq und NUnit

3) Bearbeitet die Datei AssemblyInfo und das Hinzugefügt
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
[assembly: InternalsVisibleTo("MyMoqSamples")]

4) Jetzt testen müssen, die eine private Methode.Da es eine private Methode ist es nicht Teil einer Schnittstelle.

5) folgenden code Hinzugefügt

[TestFixture]
public class Can_test_my_private_method
{
    [Test]
    public void Should_be_able_to_test_my_private_method()
    {
        //TODO how do I test my DoSomthing method?
    }
}

public class CustomerInfo
{
    public string Name { get; set; }
    public string Surname { get; set; }
}

public interface ICustomerService
{
    List<CustomerInfo> GetCustomers();
}

public class CustomerService : ICustomerService
{
    public List<CustomerInfo> GetCustomers()
    {
        return new List<CustomerInfo> { new CustomerInfo { Surname = "Bloggs", Name = "Jo" } };
    }

    protected virtual void DoSomething()
    {
    }
}

Könnten Sie mir ein Beispiel, wie würden Sie testen, meine private Methode?
Vielen Dank

InformationsquelleAutor user9969 | 2010-06-05

Schreibe einen Kommentar