2011-11-09 5 views
5

Bazı serileştirme işlemlerini gerçekleştiren bir yöntemi birim test ediyorum. Serileştirme mantığına uymayı düşünüyorum. kod aşağıda:jMockit: Yapıcının Mocked nesnelere nasıl çağrı yapması beklenir?

ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file))); 

Aşağıdaki sahte nesneleri oluşturduk:

@Mocked FileInputStream mockFIS; 

@Mocked BufferedInputStream mockBIS; 

@Mocked ObjectInputStream mockOIS; 

Ben setup yukarıdaki yapıcı çağrıları beklemek istediğiniz bir NonStrictExpectations() blok var.

Bunu nasıl başarabileceğimiz hakkında bir fikrin var mı?

cevap

10

Belirli bir etkileşim kümeleri için eksiksiz bir Beklenti kümesi belirtebilirsiniz. Behavior-based testing with JMockit Gönderen:

doSomething() yöntemi için olası bir deney SomeCheckedException başarılı tekrarlamalar keyfi bir sayı sonrasında atılan davayı egzersiz olabilir. Size, "abc" sonra

@Test 
public void doSomethingHandlesSomeCheckedException() throws Exception 
{ 
    new Expectations() { 
    DependencyAbc abc; 

    { 
     new DependencyAbc(); // expect constructor 

     abc.intReturningMethod(); result = 3; 

     abc.stringReturningMethod(); 
     returns("str1", "str2"); 
     result = new SomeCheckedException(); 
    } 
    }; 

    new UnitUnderTest().doSomething(); 
} 
+2

inşa edilmiştir edebilirsiniz: Biz kayda (herhangi bir nedenden dolayı) Bu iki sınıf arasındaki etkileşim için beklentilerin tam bir set istiyorum varsayarsak, aşağıda test yazmak olabilir başka bir yönteme geçtiğini test edin? def.someMethod (abc)? Bununla problemlerim var çünkü referanslar eşit değil. –

İlgili konular