如何获得 Java 代码覆盖率的完整覆盖率? Junit 5 日食 IDE
How to get full coverage for Java Code Coverage? Junit 5 Eclipse IDE
我正在为一门课程做作业,我需要全面了解此方法
public void ourcompanyname(String companyName) {
if (companyName == ("")) {
throw new AirlineException("Warning. The company must have a name !");}
---->这是构造函数
public String getCompanyName() {
return companyName;
}
/**
* @param companyName the companyName to set
*/
public void setCompanyName(String companyName) {
this.companyName = companyName;
----->这是我使用的测试
public void testSet() throws AirlineException {
airlinecompany.setCompanyName((""));
Assertions.assertEquals((""),airlinecompany.getCompanyName());
Assertions.assertThrows(AirlineException.class,()->airlinecompany.ourcompanyname(("")));
----->问题是我在测试这段代码时得到了 50% 的覆盖率。 ("") 字符串表示一个空白字段,因此当您不填写名称时,您会得到一个 AirlineException。但我也想测试它是否有像“FLYAIR”这样的字符串,它不应该抛出异常。
我有什么选择?更好地编码空白字段 ("") 或仅更改此字段?
提前好多了!
尝试这样的事情:---
@Test
public void testUsernameIsNull() {
Throwable exception = Assertions.assertThrows(
AirlineException.class, () -> {
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("");
}
);
Assertions.assertEquals("Warning. The company must have a name !", exception.getMessage());
if(true){
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("FLYAIR");
Assertions.assertEquals(("FLYAIR"),airlinecompany.getCompanyName());
}
}
希望它能解决您的问题。
我正在为一门课程做作业,我需要全面了解此方法
public void ourcompanyname(String companyName) {
if (companyName == ("")) {
throw new AirlineException("Warning. The company must have a name !");}
---->这是构造函数
public String getCompanyName() {
return companyName;
}
/**
* @param companyName the companyName to set
*/
public void setCompanyName(String companyName) {
this.companyName = companyName;
----->这是我使用的测试
public void testSet() throws AirlineException {
airlinecompany.setCompanyName((""));
Assertions.assertEquals((""),airlinecompany.getCompanyName());
Assertions.assertThrows(AirlineException.class,()->airlinecompany.ourcompanyname(("")));
----->问题是我在测试这段代码时得到了 50% 的覆盖率。 ("") 字符串表示一个空白字段,因此当您不填写名称时,您会得到一个 AirlineException。但我也想测试它是否有像“FLYAIR”这样的字符串,它不应该抛出异常。 我有什么选择?更好地编码空白字段 ("") 或仅更改此字段?
提前好多了!
尝试这样的事情:---
@Test
public void testUsernameIsNull() {
Throwable exception = Assertions.assertThrows(
AirlineException.class, () -> {
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("");
}
);
Assertions.assertEquals("Warning. The company must have a name !", exception.getMessage());
if(true){
Airlinecompany airlinecompany = new Airlinecompany();
airlinecompany.setName("FLYAIR");
Assertions.assertEquals(("FLYAIR"),airlinecompany.getCompanyName());
}
}
希望它能解决您的问题。