小编Fis*_*ian的帖子

为什么assertEquals中的可选断言消息移动到Junit 5中的最后一个位置?

在JUnit 4中,可选的断言消息是assertEquals方法中的第一个参数.在JUnit 5中,它是最后一个.

是否有任何技术原因将其移至最后位置?如果是这样,哪个?

java junit unit-testing junit4 junit5

9
推荐指数
1
解决办法
459
查看次数

如何断言最终满足条件?

我正在尝试编写一个 JUnit5 测试,断言最终在接下来的 15 秒内满足条件。我怎样才能最好地实现这一点?

我在想这个问题:

    assertTimeout(ofSeconds(15), () -> {assertThat(condition, is(true));});
Run Code Online (Sandbox Code Playgroud)

但要反复测试条件

java junit junit5

9
推荐指数
1
解决办法
6102
查看次数

具有异常处理的方法的构建器模式

我有几个看起来像这样的方法:

public void do(A a, B b);

public void do(A A, C c);

public void do(D d, A a);

public void do(D d, E e, X x, F f, Optional<A> a);
Run Code Online (Sandbox Code Playgroud)

等等,有大约几十种方法基本相同,但参数不同.

现在我想到使用一个构建器模式,它允许我使用这样的功能:

withA(a).withB(b).withX(x).do();
Run Code Online (Sandbox Code Playgroud)

但问题是,有几种方法中的一种抛出异常.如果我使用构建器模式,则do()必须抛出此异常,因此所有客户端都必须处理它.在我看来,这听起来像一个问题.

我的问题:

  • 这是一个问题吗?
  • 如果是,怎么可以避免?

java oop exception-handling

6
推荐指数
1
解决办法
869
查看次数

排除 Sonarqube 在两个特定类之间的重复代码检查

我将 Sonarqube 与 Jenkins 一起使用来检查各种违规行为。有两个类AB,它们有很多重复的代码。我知道并接受这一点。因此,我想忽略这些违规行为。但是,我仍然希望了解来自其他类(例如 C)的重复代码。我只想忽略A和之间的重复代码B。我怎样才能做到这一点?

java code-duplication sonarqube

5
推荐指数
1
解决办法
4024
查看次数

如何最好地存储原始值列表?

在我的Java程序中,我想存储一个原始值列表.我可以这样做:

int x = 0;
double timestamp = 123.1d;
List<Object> data = new ArrayList<Object>();
data.add(x);
data.add(timestamp);
Run Code Online (Sandbox Code Playgroud)

但问题是我不确切知道我在列表中存储了哪种对象.那么还有更好的方法吗?

java

2
推荐指数
1
解决办法
269
查看次数

Matlab:如何计算两个日期字符串之间的秒数?

我有以下格式的两个日期:

'16:40:07.875'

'16:41:05.875'
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用Matlab计算这两个日期字符串之间的差异,以秒为单位.我认为最好的方法是首先将日期字符串解析为日期类型,但我在Matlab中找不到任何日期类型.有没有?是否有预先构建的功能,然后我可以使用它来计算差异?

matlab

1
推荐指数
1
解决办法
5929
查看次数

如何检测时间戳是否位于其他两个时间戳之间?

我有一个看起来或多或少像这样的HashMap:

private HashMap<String, String> fu = new HashMap<String, String>();

fu.put("16:04:00.476", "A");
fu.put("16:09:58.228", "B");
fu.put("16:17:58.227", "C");
fu.put("16:22:42.478", "D");
fu.put("16:27:23.728", "E");
fu.put("16:38:34.977", "F");
fu.put("16:46:46.227", "G");
Run Code Online (Sandbox Code Playgroud)

现在我有另一个时间戳,名为bar,我想找到合适的字母:

private String findLetter(String timestamp) {
   return "";
}
Run Code Online (Sandbox Code Playgroud)

HashMap中的时间戳可以视为开始时间.这意味着,A从16:04:00.476开始并持续到B开始.B持续到C开始,依此类推.现在,此方法应返回作为参数传递的时间戳所在的字母.

我做的第一件事是将时间戳转换为日期对象以使用Date#after方法来查看它是否在某个开始时间之后,但我怎样才能确保它也在下一个开始时间之前?

java

0
推荐指数
1
解决办法
864
查看次数