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

  • ethr95awd

    ethr95awd

    8 Kasım 2006
  • Living Waters

    Living Water

    9 AĞUSTOS 2006
  • PC Learning Zone - Computer Training

    PC Learning

    8 EYLÜL 2006