scala - 带有 URL 的 Scala 测试用例
问题描述
我有一个具有 URL 字段的案例类:
import java.net.URL
case class A(a: URL)
我正在写一个测试用例,它有以下断言。result.url 是从案例类中获得的。
result.url should equal(new java.net.URL("https://hostpath/"))
result.url 打印我:
我的测试用例失败,说它们不相等。
解决方案
当您使用new关键字时,它会一起创建一个新对象,并且它会根据底层 URL 的 equals 实现而失败
result.url.toString should equal(new java.net.URL("https://hostpath/").toString)
如果你看一下 URL 的 equals 方法实现,它看起来像这样,并不像比较文本 URL 部分那么简单。
protected boolean equals(URL u1, URL u2) {
String ref1 = u1.getRef();
String ref2 = u2.getRef();
return (ref1 == ref2 || (ref1 != null && ref1.equals(ref2))) &&
sameFile(u1, u2);
}
protected boolean equals(URL u1, URL u2) {
String ref1 = u1.getRef();
String ref2 = u2.getRef();
return (ref1 == ref2 || (ref1 != null && ref1.equals(ref2))) &&
sameFile(u1, u2);
}
推荐阅读
- typescript - 类型为“this”的函数联合,无参数失败
- python - 空的形式参数
- java - 如何使用 Spring Boot 更新 MongoDB 集合中的子对象?
- sql - 如果找到值,请选择行和标志列
- git - Git 克隆问题 - 生成不可丢弃的更改
- elasticsearch - 是否可以使用 X-Pack 来限制 Kibana 登录尝试?
- firebase - Quasar Firebase 初始化问题
- python - 使用 concurrent.futures.ThreadPoolExecutor() 时的 PyQt5 小部件 Qthread 问题
- data-binding - 如何在 DataTemplate 中绑定两个不同的类属性
- ios - 自定义字体在 App Store 版本中消失,但在开发构建期间可以 100% 工作。精灵包