şükela:  tümü | bugün
  • unit testing terminolojisinde bir class'i test ederken calismasi icin bagimli oldugu ortamin/nesnelerin kendileri yerine sahtelerini yaratma islemi. matrix gibin. bu yaratilan nesnelere de mock object denir.
  • (bkz: moq)
    (bkz: typemock)
    (bkz: rhino mocks)
  • aslında unit test'in olmazsa olmazıdır, gereklidir. aksi halde olay integration test'e dönüşür. onun da farklı avantajları vardır ama unit test'in sağladığı spesifikasyon izolasyonunu sağlayamaz. iki yanlış bir doğru edebilir mesela. sonra unit test'lerin bulamadığı hatalar yaratmak mümkün olur.
  • backend'i yazılmamış frontend'i test etmenin en tatlı yolu.
  • ingilizce. küçümseme ve itibarını düşürme amaçlayan alay
  • bir colloquialism örneği olarak, unit testing için oluşturulan her taklide* mock, bu oluşturma işlemine mocking deniyor. ancak mock, test double türlerinden yalnızca bir tanesidir.

    diğer test double türleriyse , dummy, stub, spy ve fake'tir.

    dummy: test edilecek bir metoda argüman vermek gerekiyorsa ve bu argümanın hiç kullanılmayacağı biliniyorsa, test edilen metoda verilen bu kullanılmayacak argümana "dummy" denir. en güzel dummy de çağrıldığında null dönen dummy'dir. böylelikle birisi argümanı kullanmaya çalıştığında nullpointerexception alır ve dummy'i amacı dışında kullanamaz.

    stub: hangi argümanla çağrıldığı farketmeksizin sabit bir değer dönen (örneğin hep true dönen) bir test double'a stub adı verilir.

    spy: test double'ı çağıran sınıfı/yapıyı test ederken, nasıl çağrıldığına da bakmak istiyorsanız bir spy kullanırsınız. örneğin benim x metodum hiç çağrılıyor mu diye bakmak için x'in bir spy'ı oluşturulur ve bu spy'a metodun çağrılıp çağrılmadığını da tutan bir flag eklenir.

    mock: x metodunun çağrıldığını test class'ında değil de spy'ın içinde teyit etmek istersiniz, bu durumda oluşturacağınız spy'a mock denir. teyit edebilmek için neyi test ettiğinizin bilgisini de mock'ta tutarsınız. bu nedenle mock'lar neyi test ettiklerini bilen ve davranış test eden spy'lardır diyebiliriz.

    fake: farklı inputlarla farklı davranan, kendi çapında business behavior barındıran test double'a da fake denir. örneğin test amacıyla sadece adı binali olanların hata almasını, diğer kullanıcıların yoluna devam etmesini sağlayabilirsiniz.

    konuyla ilgili martin fowler yazısı için:

    https://martinfowler.com/…cles/mocksarentstubs.html