Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Mockito'nun sıfırlama yöntemi diğer alaycı kütüphanelerle nasıl karşılaştırılır?


Mockito'nun sıfırlama yöntemi diğer alaycı kütüphanelerle nasıl karşılaştırılır?


Mockito'nun `Recet ()` yöntemi, yeniden kullanılabilmesi için sahte bir nesneyi sıfırlamanıza izin veren bir özelliktir. Bununla birlikte, kullanımı genellikle Mockito geliştiricileri ve kullanıcıları tarafından cesaretini kırmaktadır, çünkü aşırı karmaşık ve temiz bir şekilde test edilmesi zor olan kötü tasarlanmış testleri veya kodları gösterebilir [7] [9]. Bunun yerine, önerilen yaklaşım, testte bağımsızlık ve netliği sağlamak için her test yöntemi için yeni alaylar oluşturmaktır [7] [9].

Diğer alaycı kütüphanelerle karşılaştırma

1. Jmock2: Mockito'nun aksine, JMock2 beklentileri yönetmek ve her test yöntemi için yeniden inşa edilen bilgileri yönetmek için bir bağlam kullanır. Bu, JMock2'nin Mockito'nun yaptığı gibi açık bir sıfırlama gerektirmediği anlamına gelir [10]. Jmock2'nin yaklaşımı, alayları manuel olarak sıfırlamaya gerek kalmadan test izolasyonunun korunmasına yardımcı olur.

2. EasyMock: EasyMock ayrıca tipik olarak bir sıfırlama yöntemi gerektirmez. Mockito ile önerilen uygulamaya benzer şekilde, her test için yeni sahte nesneler oluşturmak için tasarlanmıştır. Bir Mockito geliştiricisi olan Szczepan Faber, EasyMock'u kullanırken asla sıfırlama özelliğine ihtiyaç duymadığından bahsediyor [8].

3. Mockito ve Diğer Kütüphaneler: Genel olarak, JMock2 ve EasyMock gibi diğer alaycı kütüphaneler, sahte durumları otomatik olarak yöneterek veya her test için yeni alayların oluşturulmasını teşvik ederek daha temiz bir test yaklaşımını teşvik eder. Mockito'nun `RESET ()` yöntemi, alay çerçevelerindeki normdan ziyade bir istisnadır.

En İyi Uygulamalar

- `RESET ()` kullanmaktan kaçının: Kesinlikle gerekli olmadıkça, bir sahte bir konteyner tarafından enjekte edildiğinde ve her test için yeniden oluşturulamadığı gibi, `reset () 'kullanmadan kaçınılması tavsiye edilir. Bunun yerine, her senaryo için yeni alaylarla basit, odaklanmış testler oluşturmaya odaklanın [7] [9].

- `ClearInvocations ()` kullanın: Stubbing'i sıfırlamadan etkileşimleri temizlemeniz gerekiyorsa, `ClearInVocations ()` kullanın. Bu yöntem, belirli senaryolarda yararlı olabilen kayıtlı etkileşimleri temizlerken stubbing'i korumanızı sağlar [5].

- Test edilebilirlik için refactor kodu: Kendinizi sık sık kullanmaya ihtiyaç duyuyorsanız, kodunuzun daha test edilebilir hale getirmek için yeniden düzenlemekten faydalanabileceğini gösterebilir. Bu, karmaşık yöntemlerin parçalanmasını veya bağımlılık enjeksiyonunun iyileştirilmesini içerebilir [9].

Özetle, Mockito bir `` raset () `yöntemi sağlarken, kullanımı genellikle her test için yeni alaylar oluşturmak için caydırılır. Diğer alaycı kütüphaneler genellikle benzer uygulamaları teşvik ederek karmaşık sahte yönetime göre temiz ve bağımsız testleri vurgular.

Alıntılar:
[1] https://www.tutorialspoint.com/mockito/mockito_resetting_mock.htm
[2] https://groups.google.com/g/mockito/c/y_ihdc8lx_m
[3] https://www.vogella.com/tutorials/mockito/article.html
[4] https://www.lambdatest.com/automation-testing-dvisor/selenium/methods/org.mockito.mockito.reset
[5] https://www.toptal.com/java/a-guide-to-emveryday-mockito
[6] https://www.jrebel.com/blog/mock-unit-testing-with-mockito
[7] https://stackoverflow.com/questions/34412106/plepple-use-of-mockito-reset
[8] https://groups.google.com/g/mockito/c/_vxg33tlzl8
[9] https://softwareengineering.stackexchange.com/questions/188299/is-this-an-pleplepent-use-of-mockitos-reset-Method
[10] https://stackoverflow.com/questions/18164123/how-to-clean up-mocks-inpring-tests-when-using-mockito