SORU
13 Mayıs 2009, ÇARŞAMBA


EasyMock: Void Yöntemleri

Test etmek istiyorum sınıfının bir bağımlılık olduğunu bir sınıfta geçersiz döndüren bir yöntem var.

Bu sınıf çok büyük ve sadece tek bu yöntemi kullanıyorum. Bu farklı bir şey yapmak istiyorum test için bu yöntemin uygulanması değiştirmem gerek ve bu yöntem, aldığı parametreleri erişmek mümkün olmak istiyorum.

Yapamam EasyMock bunu yapmanın bir yolunu bulun. DoAnswer kullanarak Mockito ile nasıl yapılacağını biliyorum ama çok gerekli olmadıkça başka bir kütüphane eklemek istemiyorum.

CEVAP
13 Mayıs 2009, ÇARŞAMBA


Eğer düzgün yapmak istediğini anladıysam, andAnswer() kullanmak gerekir:

mockObject.someMethod(eq(param1), eq(param2));
expectLastCall().andAnswer(new IAnswer() {
    public Object answer() {
        //supply your mock implementation here...
        SomeClass arg1 = (SomeClass) getCurrentArguments()[0];
        AnotherClass arg2 = (AnotherClass) getCurrentArguments()[1];
        arg1.doSomething(blah);
        //return the value to be returned by the method (null for void)
        return null;
    }
});

EasyMock User Guide açıklar:

Dönüş Değerleri oluşturma veya özel Durumlar

Bazen davalarını nesne bir dönüş değeri veya gerçek çağrı sırasında oluşturulan bir özel durum atmak istiyoruz. Beri EasyMock 2.2, nesne tarafından döndürülen expectLastCall() expect(T value) sağlar yöntemi andAnswer(IAnswer answer) hangi sağlar [size] belirtmek için bir uygulama arayüzü IAnswer kullanılan oluşturmak için bir dönüş değeri veya durum.

IAnswer bir geri arama içinde, bağımsız alay çağrısına geçilen EasyMock.getCurrentArguments() ile mevcuttur. Eğer bunları kullanırsanız, yeniden parametreleri gibi refactorings testlerinizi kesilebilir. Daha önce uyarılmıştınız.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jose LviS el Bambino ( JLB )   LviSito

    Jose LviS el

    3 ŞUBAT 2008
  • martin shervington

    martin sherv

    7 EKİM 2011
  • mobilenet.cz

    mobilenet.cz

    26 NİSAN 2008