SORU
17 Temmuz 2010, CUMARTESİ


Bir parametre alay hizmeti bir yönteme geçirilen Nasıl Adedi:

Bu sınıf hayal edin

public class Foo {

    private Handler _h;

    public Foo(Handler h)
    {
        _h = h;
    }

    public void Bar(int i)
    {
        _h.AsyncHandle(CalcOn(i));
    }

    private SomeResponse CalcOn(int i)
    {
        ...;
    }
}

Mo(s)Foo testi İşleyicisi lanet, nasıl Bar() _h.AsyncHandle geçti ne kontrol etmek mümkün olurdu?

CEVAP
20 Temmuz 2010, Salı


Sahte kullanabilirsiniz.Geri arama yöntemi:

var mock = new Mock<Handler>();
SomeResponse result = null;
mock.Setup(h => h.AnsyncHandle(It.IsAny<SomeResponse>()))
    .Callback<SomeResponse>(r => result = r);

// do your test
new Foo(mock.Object).Bar(22);
Assert.NotNull(result);

Eğer sadece geçirilen bağımsız değişken üzerinde basit bir şey kontrol etmek istiyorsanız, siz de bunu doğrudan yapmak

mock.Setup(h => h.AnsyncHandle(It.Is<SomeResponse>(response => response != null)));

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • alex maybury

    alex maybury

    20 Aralık 2007
  • HowcastFoodDrink

    HowcastFoodD

    21 EYLÜL 2010
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006