Birlikte bir Java sınıfı bir JUnit Testini çalıştırmak çalışılıyor:Geçiş komut satırı argümanları programlı yürütülüyor
JUnitCore core = new JUnitCore();
core.addListener(new RunListener());
core.run(classToRun);
Sorun benim JUnit test şu anda içinde kodlanma bir veritabanı bağlantısı gerektirir JUnit kendini test eder.
Aradığım şey, JUnit sınamasını programlı olarak (yukarıda) çalıştırmanın bir yolu, ancak JUnit sınıfında kodlanmış değil, sınamayı çalıştıran Java Sınıfımda oluşturduğum bir veritabanı bağlantısını iletmenin bir yoludur.
Temelde Sonra classToRun içinde
JUnitCore core = new JUnitCore();
core.addListener(new RunListener());
core.addParameters(java.sql.Connection);
core.run(classToRun);
gibi bir şey:
@Test
Public void Test1(Connection dbConnection){
Statement st = dbConnection.createStatement();
ResultSet rs = st.executeQuery("select total from dual");
rs.next();
String myTotal = rs.getString("TOTAL");
//btw my tests are selenium testcases:)
selenium.isTextPresent(myTotal);
}
Ben @Parameters hakkında biliyorum, ama bu aynı test yaparken daha olduğu gibi burada uygulanabilir görünmemektedir farklı değerler ile birden çok kez dava. Tüm sınama durumlarım, bir yapılandırma dosyasından java istemcime aktardığım bir veri tabanı bağlantısını, bu sınama durumlarını (yapılandırma dosyasında da iletilen) çalıştıracak şekilde paylaşmasını istiyorum.
Bu mümkün mü?
P.S. Anlıyorum ki, bu işleri yapmak için garip bir yol gibi görünüyor.
System.set/getProperty() yöntemleri, değişkenleri çalışan test sınıflarına geçirmek için yeterliydi. Teşekkür ederim! –
Bağımsız değişkenleri bu şekilde iletirseniz -Dconnectionstring = foobar. Çalışma zamanında bunları nasıl çıkarabilirim? –
@TomKoptel, "String value = System.getProperty (" connectionstring "); – tonio