System Rulesより良いテスト
1761 ワード
1:テスト事例を作成する場合、コンソールからデータを取得し、断言と比較し、通常jdk標準出力のシールドコントローラを作成する.文章のタイトルのバッグは、私たちのためにもっとよく仕事をすることができます.
使用事例の紹介
Clear Properties
Provide Properties
package demo2;
import static org.junit.Assert.assertEquals;
import org.junit.Rule;
import org.junit.Test;
import org.junit.contrib.java.lang.system.StandardOutputStreamLog;
import org.junit.contrib.java.lang.system.SystemErrRule;
import org.junit.contrib.java.lang.system.SystemOutRule;
public class demo1 {
@Rule //
private final StandardOutputStreamLog log=new StandardOutputStreamLog();
//
@Rule
private final SystemOutRule sRule=new SystemOutRule();
//
@Rule
private final SystemErrRule errrule=new SystemErrRule();
@Test
public void miantest() {
sysou();
assertEquals(2, sRule.getLog());
}
private void sysou() {
System.out.println(2);
}
}
使用事例の紹介
Clear Properties
public class MyTest {
@Rule
public final ClearSystemProperties myPropertyIsCleared
= new ClearSystemProperties("MyProperty");
@Test
public void overrideProperty() {
assertNull(System.getProperty("MyProperty"));
}
}
Provide Properties
public class MyTest {
@Rule
public final ProvideSystemProperty myPropertyHasMyValue
= new ProvideSystemProperty("MyProperty", "MyValue");
@Rule
public final ProvideSystemProperty otherPropertyIsMissing
= new ProvideSystemProperty("OtherProperty", null);
@Test
public void overrideProperty() {
assertEquals("MyValue", System.getProperty("MyProperty"));
assertNull(System.getProperty("OtherProperty"));
}
}