Testen private Methode mit Moq funktioniert nicht

Ich bin mit Moq und ich bin sozusagen der neue.
Ich brauche zum testen einer private-Methode.

Ich habe 2 Baugruppen:

CustomerTest.dll
CustomerBusiness.dll

So
CustomerTest dll ist eine Klasse wie folgt:

[TestFixture]
public class CustomerTestFixture
{
    var customerMock=new Mock<ICustomer>()
    customerMock.Protected().Setup<bool>("CanTestPrivateMethod").Returns(true);

   etc...
}

CustomerBusiness.dll hat

öffentliche Schnittstelle ICustomer
{
void Kaufen();
}

public class Customer:ICustomer
{
    public void Buy()
    {
        etc...
    }

    protected virtual bool CanTestPrivateMethod()
    {
        return true;
    }

}

Bekomme ich die folgende Fehlermeldung

System.ArgumentException : Member ICustomer.CannotTestMethod does not exist.
at Moq.Protected.ProtectedMock`1.ThrowIfMemberMissing(String memberName, MethodInfo method, PropertyInfo property)
at Moq.Protected.ProtectedMock`1.Setup(String methodOrPropertyName, Object[] args)

Außerdem habe ich [assembly: InternalsVisibleTo("CustomerTest.CustomerTestFixture")
aber mit keinen Unterschied!

Was mache ich falsch. Ich weiß, dass mein Interface hat keine solche Methode.Das ist der Punkt, wie meine Methode muss privat sein. Können Sie helfen mit einem Beispiel?

InformationsquelleAutor user9969 | 2010-01-30

Schreibe einen Kommentar