当前位置: 首页 > 面试题库 >

JUnit消息是否应该说明成功或失败的条件?

姬俊驰
2023-03-14
问题内容

我可以使用以下两种方式之一编写断言消息。说明成功:

assertEquals( "objects should be identical", expected, actual );

或说明被破坏的条件:

assertEquals( "objects aren't identical", expected, actual );

JUnit中是否专门为此提供标准?如果没有,双方的论点是什么?

PS:我在网上看到的文章都在没有说明的情况下进行了演示,因此仅说“搜索Google”是无法解决的!

[更新]

每个人都对我用过的事实感到困惑assertEquals,因此该消息可能毫无用处。但这当然只是因为我想简单地说明这个问题。

因此,想象一下它是:

assertTrue( ... big long multi-line expression ... );

消息有用的地方。


问题答案:

至少对于,我很少打扰消息assertEquals。任何明智的测试跑步者都会向您解释您正在使用assertEquals的东西,以及意味着相等的两件事。您的任何一条消息都没有提供更多的信息。

我通常会发现单元测试失败是暂时性的-
我会迅速找出问题所在并加以解决。“找出问题所在”通常涉及足够的细节,以至于单个消息不会有太大的不同。考虑“通过收到一条消息节省的时间”与“花费在思考消息上的时间”
:)

编辑:好的,在一种情况下,我 可能会 使用一条消息:当文本中存在一个紧凑的描述时,该描述从对象的字符串表示中并不明显。

例如:比较以毫秒存储的日期时,“预计日期为12月1日”。

我不会担心您如何准确地表达它:只需确保从消息中可以明显看出您的意思。“应该是”或“不是”都可以-只是“ 12月1日”就不明显了。



 类似资料:
  • 我使用Firebase云消息向我的Android客户端应用发送通知,每个通知都应该根据其注册令牌发送到单个设备。 每次我通过https://fcm.googleapis.com/fcm/send,我收到一个JSON响应,如下所示: 我发现和是多余的——它们不是同一个意思吗?我应该检查两个以确保一切正常吗??

  • 我希望使用动态接受主题作为查询参数的成功/失败响应来响应RESTendpoint。在带有小型反应式消息传递的Quakus中,代码看起来就像下面用OutgoingKafkaRecordMetadata包装有效负载一样 即https://myendpoint/PublishToKafka?主题=myDynamicTopic 从Quarkus doco“如果endpoint没有返回CompletionS

  • JavaSelenium程序登录到Gmail帐户在搜索框检查文本这是工作正常。如何检查消息是成功还是失败如果我写一个单独的类IM得到会话ID空异常。 错误:

  • 我已经看过这些帖子: 谷歌云数据流 - 从Pub到镶木地板 谷歌数据流“工作流程失败”无缘无故 它们很有帮助,我最终为发布/订阅消息创建了类似的东西,比如:<code>{“id”:“1”}</code>(仅用于测试): 我只能看到错误“工作流失败”。但仅对于DataflowRunner,对于DirectRunner,我没有问题。这里是“运行”命令: 以下是此作业的日志(前几行是最后出现的): 现在

  • 问题内容: 使用原生(ES6)Promise。我应该以错误拒绝: 还是我应该拒绝一个字符串: 浏览器行为有什么区别? 问题答案: 是的,绝对可以。字符串不是错误,通常当您遇到错误时,这意味着出了点问题,这意味着您将真正享受良好的堆栈跟踪。没有错误-没有堆栈跟踪。 就像try / catch一样,如果您添加到抛出拒绝中,则希望能够记录堆栈跟踪,而抛出字符串会为您带来麻烦。 我在移动设备上,因此答案很

  • 问题内容: 如果我有一个如下所示的SQL表,该如何计算当前的赢或输连胜(以及按季节对赢/输连胜进行分组/重置)。我想更新表并为每条记录填写条纹。 因此,对于#1,条纹将为“ -1”,#2将为“ 1”,#3将为“ 2”,但是一旦我们降至#7,它将再次重置为“ 1”。(+1表示“赢得1场比赛”,-1表示“失去1场比赛”,依此类推。) 问题答案: 对于每个游戏,计算与之前结果相同的游戏,这样就不会有中间