Benim bildiğim kadarıyla, kurucularla alay edemezsiniz, sadece yöntemlerle. Ancak Mockito google kod sayfasındaki wiki'ye göre, sınıfınızda o sınıfın yeni bir örneğini döndüren bir yöntem oluşturarak yapıcı davranışıyla dalga geçmenin bir yolu vardır. o zaman bu yöntemle alay edebilirsiniz. Aşağıda doğrudan Mockito wiki'den bir alıntı var :
Kalıp 1 - nesne oluşturmak için tek satırlık yöntemler kullanmak
1. kalıbı kullanmak için (Sınıfım adlı bir sınıfı test etmek), aşağıdaki gibi bir çağrıyı değiştirirsiniz:
Foo foo = new Foo( a, b, c );
ile
Foo foo = makeFoo( a, b, c );
ve tek satırlık bir yöntem yazın
Foo makeFoo( A a, B b, C c ) {
return new Foo( a, b, c );
}
Yönteme herhangi bir mantık eklememeniz önemlidir; sadece nesneyi oluşturan tek çizgi. Bunun nedeni, yöntemin kendisinin asla birim testine tabi tutulmayacağıdır.
Sınıfı test etmeye geldiğinizde, test ettiğiniz nesne aslında bir Mockito casusu olacak ve bu yöntem geçersiz kılınarak bir sahte geri dönecek. Bu nedenle test ettiğiniz şey sınıfın kendisi değil, çok az değiştirilmiş bir versiyonudur.
Test sınıfınız aşağıdaki gibi üyeler içerebilir:
@Mock private Foo mockFoo;
private MyClass toTest = spy(new MyClass());
Son olarak, test yönteminizin içinde, makeFoo çağrısını aşağıdaki gibi bir satırla alay edersiniz:
doReturn( mockFoo )
.when( toTest )
.makeFoo( any( A.class ), any( B.class ), any( C.class ));
Yapıcıya iletilen bağımsız değişkenleri kontrol etmek istiyorsanız, herhangi bir () den daha spesifik eşleştiricileri kullanabilirsiniz.
Sadece sınıfınızın alay konusu olan bir nesnesini iade etmek istiyorsanız, bunun sizin için çalışacağını düşünüyorum. Her durumda, alay konusu nesne oluşturma hakkında daha fazla bilgiyi buradan okuyabilirsiniz:
http://code.google.com/p/mockito/wiki/MockingObjectCreation