SORU
20 ŞUBAT 2013, ÇARŞAMBA


Kullanın bazı yöntemler ama diğerleri alay Mockito

Herhangi bir şekilde, Mockito kullanarak, bir sınıf, ama diğerleri değil bazı yöntemler alay etmek var mı?

Örneğin, bu (kuşkusuz yapmacık) Stok sınıf istediğim için sahte getPrice() ve getQuantity() dönüş değeri (gösterildiği gibi test parçacığının) ama istediğim getValue() gerçekleştirmek için çarpma olarak kodlanmış Stok sınıf

public class Stock {
  private final double price;
  private final int quantity;

  Stock(double price, int quantity) {
    this.price = price;
    this.quantity = quantity;
  }

  public double getPrice() {
    return price;
  }

  public int getQuantity() {
    return quantity;
  }
  public double getValue() {
    return getPrice() * getQuantity();
  }

  @Test
  public void getValueTest() {
    Stock stock = mock(Stock.class);
    when(stock.getPrice()).thenReturn(100.00);
    when(stock.getQuantity()).thenReturn(200);
    double value = stock.getValue();
    // Unfortunately the following assert fails, because the mock Stock getValue() method does not perform the Stock.getValue() calculation code.
    assertEquals("Stock value not correct", 100.00*200, value, .00001);
}

CEVAP
24 Mayıs 2013, Cuma


Bir sınıfın kısmi alay yoluyla da desteklenmektedirCasusmockito

List list = new LinkedList();
List spy = spy(list);

//optionally, you can stub out some methods:
when(spy.size()).thenReturn(100);

//using the spy calls real methods
spy.add("one");
spy.add("two");

//size() method was stubbed - 100 is printed
System.out.println(spy.size());

Belgeleri mevcut ayrıntılı açıklama için here kontrol edin

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • sinumatic

    sinumatic

    19 Aralık 2006
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009