나는 간단한 클래스가 있습니다junit 및 Eclemma를 사용하여 테스트 적용 범위를 늘리는 방법은 무엇입니까?
public class NPP {
// inputs
public int m__water_pressure = 0;
public boolean m__blockage_button = false;
public boolean m__reset_button = false;
public int old_m__pressure_mode = 0;
public boolean old_m__reset_button = false;
public boolean old_m__blockage_button = false;
public int old_m__water_pressure = 0;
// outputs
public int c__pressure_mode = 0;
public boolean c__the_overriden_mode = false;
public int c__the_safety_injection_mode = 0;
public int p__pressure_mode = 0;
public boolean p__the_overriden_mode = false;
public int p__the_safety_injection_mode = 0;
public void method__c__pressure_mode() {
if (m__water_pressure >= 9 && old_m__water_pressure < 9 && c__pressure_mode == 0) {
p__pressure_mode = 1;
} else if (m__water_pressure >= 10 && old_m__water_pressure < 10 && c__pressure_mode == 1) {
p__pressure_mode = 2;
} else if (m__water_pressure < 9 && old_m__water_pressure >= 9 && c__pressure_mode == 1) {
p__pressure_mode = 0;
} else if (m__water_pressure < 10 && old_m__water_pressure >= 10 && c__pressure_mode == 2) {
p__pressure_mode = 1;
}
}
public void method__c__the_overriden_mode() {
if (m__blockage_button == true && old_m__blockage_button == false && m__reset_button == false && !(c__pressure_mode==2)) {
p__the_overriden_mode = true;
} else if (m__reset_button == true && old_m__reset_button == false && !(c__pressure_mode==2)) {
p__the_overriden_mode = false;
} else if (c__pressure_mode==2 && !(old_m__pressure_mode==2)) {
p__the_overriden_mode = false;
} else if (!(c__pressure_mode==2) && old_m__pressure_mode==2) {
p__the_overriden_mode = false;
}
}
public void method__c__the_safety_injection_mode() {
if (c__pressure_mode == 0 && c__the_overriden_mode == true) {
p__the_safety_injection_mode = 0;
} else if (c__pressure_mode == 0 && c__the_overriden_mode == false) {
p__the_safety_injection_mode = 1;
} else if (c__pressure_mode == 1 || c__pressure_mode == 2) {
p__the_safety_injection_mode = 0;
}
}
}
을 그리고 난이의 JUnit 클래스를 작성했습니다 : 나는 몇 가지 테스트를 작성하고 코드 범위의 100 %를 커버하도록 요청했습니다
import static org.junit.Assert.*;
import org.junit.Test;
public class NPPTest {
@Test
public void testMethod__c__pressure_mode() {
NPP npp = new NPP();
npp.m__water_pressure = 3;
npp.old_m__water_pressure = 5;
npp.c__pressure_mode = 2;
npp.method__c__pressure_mode();
assertEquals(1, npp.p__pressure_mode);
}
@Test
public void testMethod__c__the_overriden_mode() {
NPP npp = new NPP();
npp.m__blockage_button = false;
npp.old_m__blockage_button = true;
npp.m__reset_button = false;
npp.method__c__the_overriden_mode();
assertFalse(npp.p__the_overriden_mode);
}
@Test
public void testMethod__c__the_safety_injection_mode() {
NPP npp = new NPP();
npp.c__pressure_mode = 2;
npp.c__the_overriden_mode = false;
npp.method__c__the_safety_injection_mode();
assertEquals(1, npp.p__the_safety_injection_mode);
}
}
합니다. 그러나 그것은 정확히 무엇을 의미합니까? 내가 어떻게 이걸 얻을 수 있니? 나는 Eclemma를 달렸고 나는 46 % 밖에 얻지 못했다.
그럼 테스트를 어떻게 작성해야합니까? 모든 테스트 방법에서 모든 가능한 결과에 대해 assertEquals 또는 assertFalse를 넣어야합니까? –