5 Stimmen

Unit-Tests und der Umfang von Objekten - wie testet man private/interne Methoden usw.?

Nehmen wir an, ich habe ein Projekt, das eine Klassenbibliothek ist. Ich habe eine Klasse in dieser Bibliothek und diese Klasse hat einige Methoden, die nur innerhalb der Klasse verwendet werden. Zum Beispiel so:

public class MyClass
{
  public void MyPublicMethod
  {
    int k

    // do something ...

    int z = MyInternalMethod(k);
    // do something else ...

  }

  internal int MyInternalMethod(int i)
  {
        // do something ...

  }
}

Jetzt möchte ich Unit-Tests für diese Methoden schreiben. Ich würde ein "Unit Tests"-Projekt erstellen, das nunit referenzieren und etwas wie dieses schreiben

[TestFixture]
public class UnitTests
{
  private MyClass myClass;

  [SetUp]
  public void SetupTest
  {
    myClass = new MyClass();
  }

  [Test]
  public void TestMyInternalMethod
  {
    int z = 100;
    int k = myClass.MyInternalMethod(z); //CAN NOT DO THIS!
    Assert.AreEqual(k, 100000);
  }

  [TearDown]
  public void TearDown
  {
    myClass = null;
  }
}

Natürlich kann ich dies nicht tun, weil der MyInternalMethod-Bereich. Was wäre der richtige Weg, um diese Situation zu behandeln?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X