2012-09-17 8 views
5

Ich möchte eine Klasse mit dem Mockito-Framework, das ein paar Konstruktorargumente hat, zum Spaß machen.Wie übergeben Sie Konstruktorargumente mit Mockito

Wie würde ich diese Konstruktorargumente weitergeben, ohne Setter für die privaten Membervariablen zu generieren?

Dank

+2

Wenn Sie sich über einen Mitarbeiter lustig machen, warum interessiert es Sie dann, wie er aufgebaut wurde? Sie müssen nur definieren, wie es mit der zu testenden Klasse interagiert. – millhouse

+0

@millhouse Eine Member-Methode, die ich nicht vortäuschen möchte, verwendet diese Member-Variablen. – Dante

+1

Wenn Sie eine Klasse testen, dann verspotten Sie die Mitarbeiter, wie @millhouse sagt. Anderenfalls möchten Sie einen partiellen Schein Ihrer Mitarbeiter erstellen, was in Ihrem Fall nicht wirklich sinnvoll ist. Jedenfalls, wenn Sie ein Code-Snippet haben, um zu zeigen, dass es helfen könnte. – Brice

Antwort

4

Sie sagten, Sie einige, aber nicht alle Methoden verspotten wollen. Ich bin mir nicht sicher, warum du das machen willst - wenn deine Klasse ein Kollaborateur ist, dann würde es Sinn machen, die ganze Klasse zu verspotten. Oder wenn es das SUT ist, willst du es wahrscheinlich überhaupt nicht verspotten.

Es ist möglich, dass, was Sie suchen, ist ein spy, anstatt ein Mock. Wenn Sie sich dafür entscheiden, einen Spion zu verwenden, werden Sie ihn aus einem realen Objekt machen, das bereits mit den Argumenten konstruiert wurde, aus denen Sie es konstruieren möchten.

Aber bevor Sie in Betracht ziehen, einen Spion zu verwenden, dränge ich Sie, genauer darüber nachzudenken, was Sie testen, und warum Sie denken, dass Sie einige Ihrer Methoden mit Mock-Implementierungen ersetzen müssen, aber nicht Andere.

Verwandte Themen