İçerikler :

Basit Bir Loglama Yapan Rule Örneği ErrorCollector ExpectedException ExternalResource MethodRule Rule RuleChain Statement TemporaryFolder TestName TestRule TestWatcher Timeout Verifier

Bu Sayfayı Paylaş:

Kavram

Rule

Tanım: JUnit'de , bir test sınıfında, test methodlarına ek fonksiyonlar kazandırmak , aynı kodları farklı test sınıflarında da kullanabilmek amacıyla kullanılan yapı. JUnit içinde gelen TemporaryFolder, ExternalResource, ErrorCollector, Verifier, TestWatcher, TestName, Timeout, ExpectedException gibi rule'lar da bulunmaktadır. Geliştiriciler de yeni bir rule yaratabilirler

Kavram

TemporaryFolder

Tanım: JUnit'de , test sırasında geçici klasör ve dosya oluşturmak için kullandıkları rule ve bu rule'ın sınıfı. Test tamamlandıktan sonra bu klasör içindekilerde silinmektedir

Kavram

ExpectedException

Tanım: JUnit'de, bir test method'unda belirli bir Exception ve belirli bir exception mesajının gelip gelmediğini kontrol etmek için kullanılan bir rule sınıfı

Kavram

ExternalResource

Tanım: JUnit'de, bir veya birden fazla test sınıfında , dosya, database, sunucu gibi harici kaynakları kullanmak için yaratılan bir rule sınıfı. Bu rule ile harici kaynaklar daha iyi kontrol edilebilir ve birden fazla test sınıfında kullanılabilir.

Kavram

ErrorCollector

Tanım: JUnit'de, test sırasında oluşan hataları biriktirmek için kullanılan bir rule sınıfı.

Kavram

Verifier

Tanım: JUnit'de bazı koşulları test etmek , ve bu koşulları başka test sınıflarında da kullanmak için yaratılan bir rule sınıfı. void verify() sınıfı override edilmelidir

Kavram

TestWatcher

Tanım: JUnit'de tüm test aşamalarında bir kod yazmak için kullanılan bir rule sınıfı. apply, failed, finished, skipped, starting, succeeded method'ları bulunmaktadır

Kavram

TestName

Tanım: JUnit'de test methodlarında test adını almak için kullanılan bir rule sınıfı.

Kavram

Timeout

Tanım: JUnit'de tüm test methodlarının aynı timeout değerlerine göre çalışmasını sağlayan rule sınıfı.

Kavram

RuleChain

Tanım: JUnit'de rule'ların çalışma sırasını belirlemek için kullanılan rule sınıfı

Kavram

TestRule

Tanım: JUnit'de, test sınıflarında bir rule yaratılması için implements edilmesi gereken interface. Statement apply(Statement base, Description description) şeklinde bir methodu bulunmaktadır.

Kavram

MethodRule

Tanım: JUnit'de, test method'larında kullanılabilen bir rule yaratılması için implements edilmesi gereken interface. Statement apply(Statement base, FrameworkMethod method, Object target) şeklinde bir methodu bulunmaktadır

Kavram

Statement

Tanım: JUnit'de, bir rule yaratılırken yapılacak işlemlerin yazılacağı yapı ve bu yapıyı yazmak için implements edilmesi gereken abstract sınıf. void evaluate() şeklinde bir abstract method'u bulunmaktadır

Örnek

Basit Bir Loglama Yapan Rule Örneği

JUnit'de testlerde loglama yapabilmek için bir Log rule örneği aşağıdaki gibidir:
import java.util.logging.Logger;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
public class TestLogger implements TestRule {
  private Logger logger;
  public Logger getLogger() {
    return this.logger;
  }
  @Override
  public Statement apply(final Statement base, final Description description) {
    return new Statement() {
      @Override
      public void evaluate() throws Throwable {
        logger = Logger.getLogger(description.getTestClass().getName() + '.' + description.getDisplayName());
        try {
          base.evaluate();
        } finally { logger = null;}
      } };
	}
}
Yukarıdaki rulu test sınıflarında aşağıdaki gibi kullanılabilir:
import java.util.logging.Logger;
import org.example.junit.TestLogger;
import org.junit.*;
public class MyLoggerTest {
  @Rule
  public TestLogger logger = new TestLogger();
  @Test
  public void aTestMethod() {
    final Logger log = logger.getLogger();
    log.warn("Test log atıyor");
	// .. kod devam ediyor
  }
}




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir