- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 JUnit 测试“错误输入”?我试图通过向 Flight 对象的第一个参数传递一个无法解析为 LocalTime 类型的值来实例化 Flight 对象。当我这样做时,JUnit testConstructor 方法中的“失败”给出了错误。我应该如何处理这个异常才能顺利通过 JUnit 测试?谢谢
protected Flight(String scheduledTime, String eventType, String identifier) {
try {
this.scheduledTime = LocalTime.parse(scheduledTime);
this.eventType = EventType.valueOf(eventType);
this.identifier = identifier;
this.actualTime = null;
this.runwayUsed = null;
}
catch(Exception e) {
System.out.println(e + " Flight constructor");
}
} //end of constructor
下面的 try/catch block 中是给出错误的 JUnit 代码。
@Test
public void testConstructor() {
Flight f1 = new Flight("00:00", "ARRIVAL", "A001");
Flight f2 = new Flight("00:00", "DEPARTURE", "D001");
assertEquals(LocalTime.parse("00:00"), f1.getScheduledTime());
assertEquals(EventType.ARRIVAL, f1.getEvent());
assertEquals("A001", f1.getIdent());
assertEquals(null, f1.getActualTime());
assertEquals(null, f1.getRunwayUsed());
assertEquals(LocalTime.parse("00:00"), f2.getScheduledTime());
assertEquals(EventType.DEPARTURE, f2.getEvent());
assertEquals("D001", f2.getIdent());
assertEquals(null, f2.getActualTime());
assertEquals(null, f2.getRunwayUsed());
//invalid entry for scheduledTime
try {
Flight f3 = new Flight("00:0j", "ARRIVAL", "A001");
fail("Expected exception");
} //end of try
catch(Exception e) {
System.out.println(e);
} //end of catch
}
最佳答案
首先,正如 @binoternary 所指出的,你的构造函数不会在自身之外抛出异常,它只是记录它。其次,要使测试仅在引发特定异常时通过,您需要将此注释添加到测试方法中:
@Test(expected = DateTimeParseException.class) // or any other exception class expected to be thrown
public void testException() {
Flight f3 = new Flight("00:0j", "ARRIVAL", "A001");
}
关于java - JUnit如何处理DateTimeParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49574964/
从 https://api.spacexdata.com/v3/launches 获取日期此日期的格式为:2006-03-25T10:30:00+12:00。我想将它转换为“dd, mm, yyyy”
从 https://api.spacexdata.com/v3/launches 获取日期此日期的格式为:2006-03-25T10:30:00+12:00。我想将它转换为“dd, mm, yyyy”
我正在尝试使用 ThreeTenBP 将日期字符串从服务器转换为日期时间。我的方法如下所示: String toDateTime(String dateString) { DateTimeFo
尝试更改字符串的日期格式但出现 DateTimeException: String oldDate = "2018-12-18T17:04:56+00:00"; String outputFormat
我正在尝试使用 Java OffsetDateTime 解析日期字符串,但出现异常。 字符串如下所示:"20101217180000GMT+0800" 我的方法是这样的: OffsetDateTime
这个问题在这里已经有了答案: Exception when trying to parse a LocalDateTime (1 个回答) 关闭 4 年前。 基本上,我试图将字符串解析为时间戳。 p
我正在从 SQLite 数据库加载一个字符串,然后尝试将其转换为 LocalDate,以便我可以将其添加为对象参数,然后比较列表中对象的日期。 但是应用程序崩溃并给出 DateTimeParseExc
我正在将正常日期解析为 LocalDate 格式。在转换时,我收到一个异常调用。 Caused by: java.time.format.DateTimeParseException: Text '2
以下代码抛出 DateTimeParseException: DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd
我正在尝试从 sql 中解析时间戳对象并且遇到了问题,这是我所拥有的: DateTimeFormatter dateDTF = DateTimeFormatter.ofLocalizedDateTi
我尝试将字符串从 JSON 转换为 ZonedDateTime,就像 static String getWatchTime(JSONObject aJson, JSONObject bJson) {
使用的jdk:1.8 不确定问题是什么,configuredFormat 是有效的,inputTime 也是有效的,真的很困惑问题是什么。 public class Test { public
我正在尝试解析以下日期“Wed, 26 Feb 2020 03:42:25 -0800” String datePattern = "EEE, dd MMM yyyy HH:mm:ss Z"; Dat
我需要以年、月、日和秒为单位计算年龄,我使用 jcalendar 来获取用户输入,但我不断收到 DateTimeParseException 错误,有人可以告诉我如何解决这个问题吗? JDat
这个问题在这里已经有了答案: Is java.time failing to parse fraction-of-second? (3 个答案) 关闭 7 年前。 LocalDateTime.par
目标 为可以处理以下格式之一的输入的 LocalDate 实例提供灵活的解析器: 年 年月 年月日 实现尝试 下面的类尝试处理第一个和第二个模式。解析适用于年份输入,但年份 + 月份会导致下面列出的异
我想用 DateTimeFormatter 将像 Wed, 21 Oct 2016 07:28:00 GMT 这样的 GMT 日期解析成 Instant .为了创建模式,我使用了官方文档:DateTi
我正在尝试将字符串转换为 Java 11 中的 Date 对象。下面的代码给出了异常。尝试了不同的方法,到目前为止没有运气。对解决此错误消息有任何帮助吗? String date = 'Mon Aug
我正在尝试解析日期以将其转换为纪元。我尝试了 similar question here 的解决方案没有成功: String date = "Jun 4 2015"; DateTimeForma
我正在尝试使用 Java 8 DateTimeFormatter 类来解析西类牙语的时间字符串。经过几个小时的搜索,我找不到任何提示。返回的错误是: java.time.format.DateTime
我是一名优秀的程序员,十分优秀!