【问题标题】:Are there any circumstances where an empty String would be sent to System.out without calling the print function?是否有任何情况下会在不调用 print 函数的情况下将空字符串发送到 System.out?
【发布时间】:2019-04-02 20:55:48
【问题描述】:

我目前正在对我编写的代码进行单元测试,我注意到发生了一些奇怪的事情。我的 jUnit 测试正在监视 System.out 并将正确的值与我的代码进行比较。问题是,即使在搜索我的整个项目以查找(并注释掉)System.out.println 的所有实例之后,调试器仍会注意到在某些时候,正在发送字符串“”。 ByteOutput 这样做有什么理由吗?我认为即使创建一个没有任何内容的字符串也会出错。

【问题讨论】:

  • 我认为即使创建一个没有任何内容的字符串也会出错。它不会。长度为0String 是合法的。
  • @ElliottFrisch 坚果。好吧,我还在摸不着头脑,想弄清楚这该死的空弦是从哪里来的!
  • String 上甚至还有一个方法来测试字符串是否是那个字符串:String.isEmpty()
  • 你如何测试这个? PowerMock?
  • 我想通了!

标签: java eclipse debugging


【解决方案1】:

我想通了!交给我的测试用例调用 System.out 上的 Split 函数,正则表达式为 \n。因此,每当我使用 println 而不是 print + \n 时,字符串拆分函数都会将一个空字符串添加到新形成的数组中。

谢谢大家!

【讨论】:

    猜你喜欢
    • 2020-04-07
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    相关资源
    最近更新 更多