2010-11-21 13 views
0

Ofiste Junit'i kullanmaya çalışıyorum (JVM 1.4): TestCase'u genişleten bir çok sınıfı yazdım ancak TestSuite'u genişleten herhangi bir sınıf yazmamıştım. Sorun teste çok iyi bir TestSuite ne anlamıyorum ki:TestSuite'inizi nasıl düzenlersiniz?

  • bir paketin kamu sözleşmesi (bir paketin tüm kamu sınıfının tüm kamu yöntemi).
    Örnek: FirstClass ve SecondClass aynı paket aaa, mevcut

    public class TestPackageAAA extends TestSuite{ 
        //... 
        public void testSomething{ 
         testSuite.add(new TestFirstClass()); 
         testSuite.add(new TestSecondClass()); 
        } 
        //... 
    } 
    

    .

  • İşlevsel süreç, entegre edilmemiş tek bir sınıfın bir listesi olarak tercüme edildi mi?

    (webapp bir güncelleme ve silme işlemi gibi) BBB adlı bir kullanıcı işleminin ilk adımı olarak FirstClass ile
    public class TestProcessBBB extends TestSuite{ 
        //... 
        public void testSomething{ 
         testSuite.add(new TestFirstClass()); 
         testSuite.add(new TestSecondClass()); 
        } 
        //... 
    } 
    

, aynı işlemin vs vs. ikinci adımında, SecondClass (bu testte, FirstClass ve SecondClass iletişim kurma).

TestSuite'inizi nasıl düzenlersiniz? Birinci veya ikinci yoldan mı? Ya da başka bir şekilde?

EDIT: Hatalıyım çünkü örnekte aynı adı tekrar ediyorum çünkü ergo kafa karıştırıcı. Bu örnek konfigürasyonu olan:

src

|-->{package} **AAA** 

     |--->{class}FirstClass 
     |--->{class}SecondClass 

|-->{package} **XYZ** 

     |-->{class}ThirdClass 

Test

{package} **AAA** 

     |--->{class}TestFirstClass extends TestCase 
     |--->{class}TestSecondClass extends TestCase 

|-->{package} **XYZ** 

     |-->{class}TestThirdClass extends TestCase 
  • Birinci yol:
.210 TestSuiteAAA (test dizinin kök yerleştirilir) test.AAA

paketindeki tüm TestCase bir kompozit
testSuite.add(new TestFirstClass()); 
testSuite.add(new TestSecondClass()); 
  • İkinci yol: test kök yerleştirilir

TestSuiteBBB (dizin), işlevsel bir sürecin yürütülmesine (örneğin: bir e-ticaret web sitesinin yöneticisi için planlanmış bir e-posta göndererek) ayrılan tüm TestCase'in bir bileşimidir. TestSuiteBBB, FirstClass ve ThirdClass yöntemlerini çağırır ve her sınıf diğer sınıfın yöntemlerini çağırmaz.

testSuite.add(new TestFirstClass()); 
testSuite.add(new TestThirdClass()); 

JUnit (Eclipse ve vadede şimdi onları kodlu) beni hem şekilde yapıyor sağlar: Ne tercih edersiniz?Bu gerçekten sorularınıza cevap verirse

paketleri :)

cevap

0

Maalesef yapısı biçimlendirme için PS üzgünüm, ben bilmiyorum, ama çok zor sorunuzu anlamak bulabilirsiniz.

Normalde, oluşturma işleminizde kendi test dizininiz olur. Eclipse veya Netbeans'i IDE'niz olarak kullanırsanız, kaynak (src) için bir klasör ve testler için bir klasörünüz olacaktır. Normalde test ve src klasöründe aynı paket isimlerini oluşturuyoruz.

Çoğu takım zinciri, testlerinizi bu şekilde düzenlemenin bu yolunu kullanmaya zorlar.

+0

Tamam, bir IDE (ve bu ilk durum) kullanıyorsanız, bu doğrudur. Tecrübem yok: Test Testini herhangi bir TestSuite (paket görünümünde) içine koymanın tek yolu olduğunu mu söylüyorsunuz? – alepuzio

+0

Hayır, yapılandırmanıza bağlı. Örneğin, projenizi oluşturmak için ANT kullanıyorsanız, bir JUnit hedefi belirtirsiniz ve bu hedefte testlerinizi belirlersiniz. Daha fazla bilgi için bu makaleye göz atın: http://ideoplex.com/id/25/ant-and-junit Programınızı istediğiniz gibi ayarlayabilirsiniz. Ama test denen bir klasöre sahip olmak daha iyi olurdu. Bu ayrıca, projenizi dağıtmadan önce sınamaları kaldırmanıza olanak tanır. – iuiz

İlgili konular