← Kursa Dön
💻

Mini Test Framework: TestRunner

Orta
100 puan · Java

Bu ödevde Java Reflection API kullanarak basit bir test framework simülasyonu oluşturacaksınız. TestRunner sınıfı, belirtilen test sınıfındaki @SimpleTest ile işaretlenmiş metotları bulur, çalıştırır ve sonuçları raporlar.

📋 Talimatlar

Bir mini test framework oluşturun.

@SimpleTest anotasyonu:

  • @Retention(RetentionPolicy.RUNTIME) ve @Target(ElementType.METHOD) ile tanımlı
  • Parametre almaz

Assert sınıfı:

  • static void assertEquals(Object expected, Object actual) → eşit değilse AssertionError fırlatır (mesaj: Expected <expected> but got <actual>)
  • static void assertTrue(boolean condition) → false ise AssertionError fırlatır (mesaj: Expected true but got false)

TestRunner sınıfı:

  • static void run(Class<?> testClass) metodu
  • testClass'taki tüm @SimpleTest anotasyonlu metotları bulur
  • Her metot için yeni instance oluşturur (no-arg constructor)
  • Metotları isimlerine göre alfabetik sırala ve çalıştırır
  • Başarılı: PASS: methodName yazdırır
  • Başarısız (AssertionError): FAIL: methodName - hata mesajı yazdırır
  • Sonunda: Results: X/Y passed yazdırır

Main sınıfı: Stdin'den test sınıfı adını okur ve TestRunner.run(Class.forName(name)) çağırır.

Örnek test sınıfı (CalculatorTest) program içinde tanımlı olmalı:

  • testAddition: assertEquals(4, 2+2)
  • testSubtraction: assertEquals(1, 5-4)
  • testDivisionByZero: assertTrue(false) ile bilerek başarısız

🧪 Örnek Test Senaryoları

CalculatorTest — 2 pass, 1 fail (alfabetik sıra)
Girdi
CalculatorTest
Beklenen Çıktı
PASS: testAddition
FAIL: testDivisionByZero - Expected true but got false
PASS: testSubtraction
Results: 2/3 passed

💡 İpuçları

Main.java
✓ Çözüm yüklendi
puan

                    
Ln 1, Col 1 · JAVA · UTF-8
Wandbox