为什么jUnit 5没有看到我的异常测试?

EnesDemirtaş:

我已经编写了48种测试方法来测试课程分配。它们都不是例外测试,但是它们可以正常工作。最后,我尝试测试自己的异常,而jUnit 5则看不到它。我的代码设计和异常测试有一些示例。

import static org.junit.jupiter.api.Assertions.*;
import org.junit.Test;
import junit.framework.TestCase;

public class Final_Tests extends TestCase {
    
    @Test
    public static void testD4_setChair() {
    Department testD = new Department("CSE 101","CSE 101!");
    Teacher testT = new Teacher("Ali","Veli.com",testD,"CV");
    testD.setChair(testT);
    assertEquals(testT,testD.getChair());
}

测试非异常方法没有问题。问题在这里。

    @Test 
    public static void DepartmentMismatchException_Test() {
    Department testD = new Department("CSE 101","CSE 101!");
    Teacher testT = new Teacher("Mehmet", "mehmet.com", testD, "CV Mehmet");
    Course testC1 = new Course(testD,101,"Test Course 1","Test Course 1 Desc.",testT,6);
    String expMsg = "DepartmentMismatchException: Teacher in " + testT.getDepartment().getCode()+ ", Course in " +testC1.getDepartment().getCode();
    
    DepartmentMismatchException dme =  new DepartmentMismatchException(testT.getDepartment(), testC1.getDepartment());
    assertEquals(expMsg, dme.toString());
    }

代码设计是否存在问题,例如使用范围,静态或其他修饰符,或者关于我的异常测试代码?

fjsv:

来自JUnit5 @Testjavadoc:

@Test方法不得为私有或静态,并且不得返回值。

因此,您应该从static关键字中删除关键字,然后测试应该可以正常运行。

通常,异常会throw以某种方式测试异常并验证其是否正确thrown我看到您正在实例化它,并验证消息是否符合预期,但是最好的方法是:

@Test
public static void DepartmentMismatchException_Test() {
    Department testD = new Department("CSE 101","CSE 101!");
    Teacher testT = new Teacher("Mehmet", "mehmet.com", testD, "CV Mehmet");
    Course testC1 = new Course(testD,101,"Test Course 1","Test Course 1 Desc.",testT,6);
    String expMsg = "DepartmentMismatchException: Teacher in " + testT.getDepartment().getCode()+ ", Course in " +testC1.getDepartment().getCode();

    Exception thrownException = Assertions.assertThrows(DepartmentMismatchException.class, () -> /* Some code that throws your exception */);
    assertEquals(expMsg, thrownException.toString() /* or maybe thrownException.getMessage() */);
}

您可以在此处查看教程和更多示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么afBedSheet没有看到我的类型?

为什么我没有看到我刚刚通过终端安装的 ImageMagick 版本?

为什么Angular没有看到我的控制器?

为什么JUnit Testing异常总是失败?

为什么JUnit测试方法必须是无效的?

为什么要使用JUnit测试套件?

为什么要使用JUnit进行测试?

JUnit的LinkedList方法测试失败,为什么?

为什么要将现有测试从 JUnit4 转换为 Junit5?

为什么我在 JUnit4 中得到这个异常?

为什么我的 JUNIT 测试会出现 StackOverflowError?

为什么我的代码未能通过JUnit对IllegalArgumentException的测试?

为什么这个简单的JUnit测试5不工作

为什么我的`main()`不能捕获junit测试中`timer`中抛出的异常?

为什么我没有看到预期的页面错误?

为什么此测试junit测试返回400?

为什么由于假设失败而跳过的junit测试没有报告为跳过了?

为什么 Django 没有检测到我的表列?

为什么Flask没有收到我的POST Blob?

为什么Google CodePro会生成相同的JUnit测试?

与流API交换实现后,Junit测试失败了,为什么?

为什么Elasticsearch在Junit测试中这么慢?

为什么Junit测试用例(方法)应该公开?

为什么JUnit测试在Ant Build System中失败?

谁能解释为什么 JUnit 测试会出错?

为什么可观察到的我从来没有在kotlin android协程中看到我列表的更新?

为什么我不能在JUnit中定义期望的ParseException?

为什么我不能使用预计在JUnit 4中

为什么我收到MockMvc和JUnit的错误403?