«mocking» etiketlenmiş sorular

Alay ve taklit, birim testlerinin yalnızca bir uygulamanın diğer bileşenlerini veya bağımlılıklarını kullanmadan test edilebilir kod birimine karşı çalışmasını sağlamak için kodu veya bileşenleri izole etmenin yoludur. Alay etme, bir testin sonuçlarını iddia etmek için bir alayın incelenebilmesi açısından taklit etmekten farklıdır.


10
Mockito ile geçersiz yöntemler nasıl atılır
Geçersiz dönüş tipi ile yöntemler nasıl takılır? Bir gözlemci modeli uyguladım ama Mockito ile alay edemem çünkü nasıl olduğunu bilmiyorum. İnternette bir örnek bulmaya çalıştım ama başarılı olamadım. Sınıfım şöyle: public class World { List<Listener> listeners; void addListener(Listener item) { listeners.add(item); } void doAction(Action goal,Object obj) { setState("i received"); goal.doAction(obj); …

11
Sahte, alaycı ve stubbing arasındaki fark nedir?
Bu terimleri nasıl kullandığımı biliyorum, ancak birim testleri için taklit , alay ve saplama için kabul edilen tanımlar olup olmadığını merak ediyorum ? Testleriniz için bunları nasıl tanımlıyorsunuz? Her birini kullanabileceğiniz durumları açıklayın. Bunları nasıl kullanacağım: Sahte : bir arabirim uygulayan ancak sabit veri içeren ve mantık içermeyen bir sınıf. …



6
Mockito, birden çok kez çağrılan bir yöntemin argümanlarını yakalayabilir mi?
İki kez çağrılan bir yöntem var ve ikinci yöntem çağrısının argümanını yakalamak istiyorum. İşte denedim: ArgumentCaptor<Foo> firstFooCaptor = ArgumentCaptor.forClass(Foo.class); ArgumentCaptor<Foo> secondFooCaptor = ArgumentCaptor.forClass(Foo.class); verify(mockBar).doSomething(firstFooCaptor.capture()); verify(mockBar).doSomething(secondFooCaptor.capture()); // then do some assertions on secondFooCaptor.getValue() Ama TooManyActualInvocationsMockito'nun düşündüğü gibi bir İstisna alıyorumdoSomething sadece bir kez çağrılması gerektiğini . İkinci çağrısının argümanını nasıl doğrulayabilirim …

5
Mockito'yu bazı yöntemleri alay etmek için kullanın, ancak diğerlerini değil
Mockito'yu bir sınıfta bazı yöntemlerle alay etmenin, başkalarının yapmamasının bir yolu var mı? Örneğin, bu (kuşkusuz çelişkili) Stocksınıfta alay etmek getPrice()ve getQuantity()değerleri döndürmek istiyorum (aşağıdaki test snippet'inde gösterildiği gibi) ama getValue()çarpımı Stocksınıfta kodlanmış olarak gerçekleştirmek istiyorum public class Stock { private final double price; private final int quantity; Stock(double price, …
402 java  mocking  mockito 

2
Mockito testi geçersiz bir yöntem bir istisna atar
voidDönüş türü olan bir yöntem var . Ayrıca birkaç istisna atabilir, bu yüzden atılan istisnaları test etmek istiyorum. Tüm denemeler aynı nedenden dolayı başarısız oldu: Stubber türündeki (T) bağımsız değişkenleri (void) için geçerli olmadığında kullanılan yöntem Herhangi bir fikir nasıl belirli bir istisna atmak için yöntem alabilirim? doThrow(new Exception()).when(mockedObject.methodReturningVoid(...));

3
Bir yönteme aktarılan değer döndürme
Bir arabirimde bir yöntem var: string DoSomething(string whatever); Ben MOQ ile alay etmek istiyorum, böylece geçti ne olursa olsun döner - gibi bir şey: _mock.Setup( theObject => theObject.DoSomething( It.IsAny<string>( ) ) ) .Returns( [the parameter that was passed] ) ; Herhangi bir fikir?
390 c#  mocking  moq 

11
Mockito ile statik yöntemleri alay etme
java.sql.ConnectionNesneleri üretmek için bir fabrika yazdım : public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } Geçirilen parametreleri doğrulamak istiyorum DriverManager.getConnection, ancak statik bir yöntemle alay etmeyi bilmiyorum. Test durumlarım için JUnit 4 …

14
Java için en iyi sahte çerçeve nedir? [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışma talep edecektir. Bu sorunun çözülebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, yardım için yardım merkezini ziyaret edin . 8 yıl önce kapalı . …

7
Veritabanı güdümlü uygulamalar için birim testi yapmak için en iyi strateji hangisidir?
Arka uçta değişen karmaşıklık veritabanları tarafından yönlendirilen birçok web uygulamasıyla çalışıyorum. Genellikle, iş ve sunum mantığından ayrı bir ORM katmanı vardır . Bu, birim testini iş mantığını oldukça basit hale getirir; işler ayrı modüllerde uygulanabilir ve test için gerekli olan her türlü veri nesne alaycılığı ile taklit edilebilir. Ancak ORM …

4
Mockito tartışmayı dikkate almadan bir yöntemi saplayabilir mi?
Mockito kullanarak bazı eski kodları test etmeye çalışıyorum. FooDaoÜretimde kullanılan a saplamasını aşağıdaki gibi yapmak istiyorum: foo = fooDao.getBar(new Bazoo()); Yazabilirim: when(fooDao.getBar(new Bazoo())).thenReturn(myFoo); Ama asıl sorun, getBar()yöntemi asla Bazoosapladığım aynı nesne ile çağrılmamasıdır . (O newoperatörü lanetleyin !) Metodu myFoo, argümandan bağımsız olarak geri dönecek şekilde saplayabilirsem çok isterdim . …

9
Mockito'yu aynı argümanla aynı yönteme birden fazla çağrı ile kullanma
Saplanmış bir yöntemin sonraki çağrılarda farklı nesneler döndürmesinin bir yolu var mı? Bunu, bir alandaki belirsiz yanıtları test etmek için yapmak istiyorum ExecutorCompletionService. yani yöntemlerin dönüş sırasına bakılmaksızın sonucun sabit kaldığını test etmek. Test etmek istediğim kod böyle görünüyor. // Create an completion service so we can group these tasks …
289 java  mocking  mockito 

7
Jest kullanarak ES6 modül aktarımını nasıl alay edebilirim?
Bunun mümkün olmadığını düşünmeye başladım, ama yine de sormak istiyorum. ES6 modüllerimden birinin belirli bir şekilde başka bir ES6 modülünü çağırdığını test etmek istiyorum. Yasemin ile bu çok kolay - Uygulama kodu: // myModule.js import dependency from './dependency'; export default (x) => { dependency.doSomething(x * 2); } Ve test kodu: …

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.