2 回答

TA貢獻1874條經(jīng)驗 獲得超12個贊
假設你畫圣誕樹的班級看起來或多或少像這樣:
class ChristmasTreeDrafter {
void draw() {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 10 - i; j++)
System.out.print(" ");
for (int k = 0; k < (2 * i + 1); k++)
System.out.print("*");
System.out.println();
}
}
}
你可以這樣測試它:
public class ChristmasTreeDrafterTest {
private final ByteArrayOutputStream out = new ByteArrayOutputStream();
@Before
public void setup() {
System.setOut(new PrintStream(out));
}
@Test
public void shouldDrawChristmasTree() {
// given
ChristmasTreeDrafter christmasTreeDrafter = new ChristmasTreeDrafter();
// when
christmasTreeDrafter.draw();
// then
Assert.assertEquals(" *\r\n" +
" ***\r\n" +
" *****\r\n" +
" *******\r\n", out.toString());
}
}
在setup方法中,標準輸出流被重定向到out對象,因此您可以在then塊中驗證其內(nèi)容。不幸的是 Java 沒有多行字符串,所以這段代碼看起來很難看。為了提高可讀性,您可以將此內(nèi)容提取到文件中test/resources(假設默認的 maven 項目結(jié)構(gòu))。
添加回答
舉報