En iyi Uygulama: kur JUnit sınıfı alanları Başlatılamadı() veya beyan?
Böyle beyannamesi, B) alanları başlatmak gerekir?
public class SomeTest extends TestCase
{
private final List list = new ArrayList();
public void testPopulateList()
{
// Add stuff to the list
// Assert the list contains what I expect
}
}
Ya da kur() bu gibi?
public class SomeTest extends TestCase
{
private List list;
@Override
protected void setUp() throws Exception
{
super.setUp();
this.list = new ArrayList();
}
public void testPopulateList()
{
// Add stuff to the list
// Assert the list contains what I expect
}
}
Daha kısa, ve bana son alanları kullanmak için izin verir, çünkü ilk form kullanmak eğilimindedir. Eğer don eğergerekkurulum() set-up için bir yöntem, hala kullanmalıyım ve neden?
Açıklama:
JUnit test sınıfı bir kez test yöntemi başına başlatılamadı. list
test başına bir kez açıklıyorum yerden bağımsız olarak oluşturulan anlamına gelir. Ayrıca bu testler arasında zamansal bağımlılıkları vardır, hayır demektir. Kur kullanmanın yararları vardır yok gibi görünüyor). Bir sebebi olmalı diye düşünüyorum. JUnit SSS kur boş bir koleksiyon başlatmak birçok örnek var ancak(),
CEVAP
Özellikle JUnit SSS, ** 5, bence en iyi uygulama gösterilen kapalı olmak gibi örneklerde merak ediyorsan o vartest edilen sınıfkurulum yöntemi (ya da bir test yöntemi) örneği olmalıdır.
JUnit örneklerden kurulum yöntemi bir ArrayList oluşturmak, hepsi bu ArrayList, testİndexOutOfBoundException, testEmptyCollection, ve bu gibi durumlarda davranışını test etmek için. Birisi bir sınıf yazmak ve emin yapıyor orada perspektifi doğru çalışır.
Test yönteminde kur veya nesne oluşturmak, böylece daha sonra kırarsan makul çıkış almak mümkün olacak. muhtemelen kendi sınıfları test ederken aynı şeyi yapmalı:
Diğer taraftan, eğer kullandığınız bir Java koleksiyon sınıfı (veya başka bir kütüphane sınıfı için önemli) test kodu, muhtemelen değil, çünkü istediğin için test--o kısmını test Fikstür. Bu durumda, güvenli bir şekilde beklendiği gibi çalışır, kabul edilebilir, bildiriminde başlatılıyor sorun olmaz.
Buna değer ne için, ben oldukça büyük, kaç yaşında, TDD-gelişmiş bir kod tabanı üzerinde çalışır. Biz alışkanlıkla test kodunu kendi tanımlamalar şeyler başlatmak ve bu yıl bu projede olduğum bir yarısında, hiç bir sorun yarattı. En azından makul bir şey yapmış olmak için bazı anekdot kanıtlar var.
Nasıl özel yöntemleri, alanları veya i...
Neden Java Vector sınıfı eski veya kul...
Nasıl bir uygulama veya bir işlemin as...
CSS sınıfı bir veya daha fazla diğer s...
Uygulama ayarları okuma.config veya we...