我爲JUnit的測試下面的代碼:這段代碼如何在JAVA中爲JUnit工作?
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
public class JUnitHelloWorld {
protected String s;
@Before
public void setup() {
s = "HELLO WORLD";
}
@Test
public void testHelloWorldSuccess() {
s = s.toLowerCase();
assertEquals("hello world", s);
}
// will fail even if testHelloWorldSuccess is called first
@Test
public void testHelloWorldFail() {
assertEquals("hello world", s);
}
}
現在,根據意見,爲什麼會在第二種方法失敗,即使第一種方法是先叫什麼名字?是不是第一種將s的值改爲小寫的方法?
事實上切換到@BeforeClass將獲得提供行爲,但隨後這將是糟糕的測試實踐:-P –
在這種情況下,它是壞的測試實踐,因爲執行的順序很重要。我包括'@ BeforeClass',這樣OP就可以理解如何從'@ Before'得到他們期待的行爲。 – n00begon