【问题标题】:Warning: The method assertEquals from the type Assert is deprecated警告:不推荐使用 Assert 类型的方法 assertEquals
【发布时间】:2014-04-27 19:10:28
【问题描述】:

由于Assert.assertEquals方法已被弃用,我们现在应该使用哪种方法?

以下代码:

String arg1 = "test";
String arg2 = "me";

Assert.assertEquals(arg1, arg2);

给出以下警告:

这一行有多个标记

  • 不推荐使用 Assert 类型的方法 assertEquals(String, String)
  • 不推荐使用 Assert 类型

【问题讨论】:

标签: java junit


【解决方案1】:

您使用的是junit.framework.Assert 而不是org.junit.Assert

【讨论】:

  • 谢谢....我后来意识到,在我发布这个之后......我仍然认为值得在这里作为问题/答案包括在内,因为它可能会弹出给其他人,现在他们'当他们用谷歌搜索时会找到这个。
  • This answer 到上面链接的问题提供了一些额外的上下文。
  • 对于那些也发现这很有用的未来的人,请不要评论谢谢 - 只需对问题和答案进行投票即可。 meta.stackexchange.com/questions/126180/… 这没什么大不了的,但我们不希望这个答案变得混乱。
  • 我很确定这在 org.junit.Assert 中也被弃用了。我认为正如下面 Tommy.qichang 所评论的那样,它需要一个额外的 delta 参数(被认为是正确的精度级别)。
  • 这个问题是关于比较字符串而不是浮点数。对于字符串,它不被弃用。
【解决方案2】:

此方法也遇到过时警告:

org.junit.Assert.assertEquals(float expected,float actual) //deprecated

这是因为目前junit更喜欢第三个参数而不是两个浮点变量输入。

第三个参数是delta:

public static void assertEquals(double expected,double actual,double delta) //replacement

这主要用于处理不准确的浮点计算

更多信息请参考这个问题:Meaning of epsilon argument of assertEquals for double values

【讨论】:

  • Delta 是 2 个数字可以偏离的值。因此,只要 Math.abs(expected - actual)
【解决方案3】:

当我使用 Junit4 时, 导入 junit.framework.Assert; 导入 junit.framework.TestCase; 警告信息是:不推荐使用 Assert 的类型

这样导入时: 导入 org.junit.Assert; 导入 org.junit.Test; 警告消失了

differences between 2 JUnit Assert classes 可能重复

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 2015-10-26
    • 2020-01-31
    • 2018-01-09
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2020-02-23
    • 2019-09-21
    相关资源
    最近更新 更多