Cuba menangani kegagalan ujian yang jarang berlaku disebabkan tindakan sensitif masa dalam suite ujian yang besar boleh mengecewakan. Berita baiknya ialah anda boleh melaksanakan TestRule untuk mencuba semula ujian yang gagal.
TestRule memberi anda kawalan ke atas pelaksanaan ujian. Untuk mencipta RetryRule, tentukan kelas seperti ini:
<code class="java">public class RetryTest { public class RetryRule implements TestRule { ... public Statement apply(Statement base, Description description) { ... } ... } }</code>
Dalam kaedah gunakan, masukkan logik cuba semula anda di sekeliling panggilan ujian menggunakan base.evaluate():
<code class="java">public Statement apply(Statement, Description) { return new Statement() { @Override public void evaluate() throws Throwable { ... for (int i = 0; i < retryCount; i++) { ... } ... } }; }</code>
Anotasi kelas ujian anda dengan Peraturan seperti ini:
<code class="java">... @Rule public Retry rule = new Retry(3); ...</code>
TestRunner Tersuai:
Sebagai alternatif, anda boleh membuat TestRunner tersuai yang memanjangkan BlockJUnit4ClassRunner dan mengatasi runChild() untuk melaksanakan mekanisme cuba semula.
Nota:
Atas ialah kandungan terperinci Bagaimana untuk Mencuba Semula Ujian JUnit yang Gagal Serta-merta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!