EasyMock: Mock aus einem Konstruktor-Aufruf in java

Ich habe einen angeschaut, ähnliche Fragen auf diesem board, aber keiner von Ihnen Antwort auf meine Frage. Diese seltsam klingen, aber ist es möglich, zu verhöhnen, aus einem Konstruktor-Aufruf auf das Objekt sind Sie spöttisch.

Beispiel:

class RealGuy {

   ....
   public void someMethod(Customer customer) {
     Customer customer = new Customer(145);
   }
}
class MyUnitTest() {
  public Customer customerMock = createMock(Customer.class)
  public void test1() {
    //i can inject the mock object, but it's still calling the constuctor
    realGuyobj.someMethod(customerMock);
    //the constructor call for constructor makes database connections, and such.
  }
}

Wie kann ich erwarten, dass ein Konstruktor aufrufen? Ändern kann ich den Kunden Konstruktor-Aufruf zu verwenden, newInstance, aber ich bin mir nicht sicher, ob das helfen wird. Ich habe keine Kontrolle darüber, was der Körper des new Customer(145) Konstruktor tut.

Ist das möglich?

  • Es wäre eine gute Idee, um nicht-Datenbank-verbindungen in einem Konstruktor. Injizieren der verbindungen, die in der Klasse mit Ihnen.
  • Vereinbart. Aber ich don' haben die Kontrolle über das Kunden-Konstruktor-Logik.
InformationsquelleAutor Setzer | 2011-10-04
Schreibe einen Kommentar