Только что начал с JUnit, но я не могу помочь этой ошибке, здесь фрагмент кода:
package ss.week2.test;
import static org.junit.Assert.*;
import ss.week2.hotel.Safe;
import org.junit.Before;
import org.junit.Test;
public class SafeTest {
@Before
public void setUp() {
Safe safe1 = new Safe();
Safe safe2 = new Safe();
safe2.activate("Initial");
}
@Test
public void testSetToActiveWrong() {
System.out.println("Testing setting to active with wrong password: ");
assertEquals("safe1.activate(\"wrongwrong\")", true, safe1.activate("wrongwrong"));
assertEquals("safe2.activate(\"wrongwrong\")", false, safe2.activate("wrongwrong"));
}
// Some other tests
public void runTests() {
setUp();
testSetToActiveWrong();
setUp();
testOpenWrong();
setUp();
testOpenRight();
setUp();
testDeactivate();
}
private void assertEquals(String text, boolean expected, boolean result) {
System.out.println(" " + text);
System.out.println(" Expected: " + expected);
System.out.println(" Result: " + result);
}
public static void main(String[] args) {
System.out.println("Initial conditions: ");
System.out.println("safe1 is closed and not active.");
System.out.println("safe2 is closed but active.");
new SafeTest().runTests();
}
}
вызов assertEquals дает мне ошибку: safe1 не может быть решена, почему это так? Я думаю, что я инициализировал переменную (без ошибок), я импортировал пакет и файл, в котором должен быть протестирован файл (обратите внимание: Safe.java находится в другом пакете).
Как это исправить?
safe1
объявляется локальной переменной в вашей функции setUp()
. Если вы хотите, чтобы он был доступен из других методов, он должен быть объявлен как mem memler:
public class SafeTest {
Safe safe1;
Safe safe2;
@Before
public void setUp() {
safe1 = new Safe();
safe2 = new Safe();
safe2.activate("Initial");
}
@Test
public void testSetToActiveWrong() {
System.out.println("Testing setting to active with wrong password: ");
assertEquals("safe1.activate(\"wrongwrong\")", true, safe1.activate("wrongwrong"));
assertEquals("safe2.activate(\"wrongwrong\")", false, safe2.activate("wrongwrong"));
}
// rest of class...