我想就我们在Kotlin多平台项目中尝试单元测试特定于平台的Date
类时面临的问题寻求一些帮助/建议。
我们的Kotlin多平台库目标;JVM,本机
通过预期的/实际的日期
类公开,并在公共包的公共域类中使用。例如:
public data class Event {
val id: String,
val start: Date
}
长话短说;当进行单元测试时,我们发现assertEquals适用于JVM
import kotlin.js.Date
import kotlin.test.Test
import kotlin.test.assertEquals
class DateEqualsTest {
@Test
// Fails!
fun dateEquals() {
val first = Date(1_630_399_506_000)
val second = Date(1_630_399_506_000)
assertEquals(first, second)
}
@Test
// Succeeds
fun timestampEquals() {
val first = Date(1_630_399_506_000)
val second = Date(1_630_399_506_000)
assertEquals(first.getTime(), second.getTime())
}
}
由于(我猜)kotlin中缺少equals()操作符,JS的assertEquals
失败。js。约会课。
根据我们的用例,关于如何使assertEquals
在所有平台上工作,有什么建议吗?我可以想象一个解决方法是引入一个DateWrapper
类来包装Date
类,并手动实现equals()。。。但这需要使用重构我们的公共API,而且不确定这是否是最好的方法。所以任何帮助/建议都是非常受欢迎的。非常感谢!
assertEquals
将无法工作,因为您无法将equals
方法添加到kotlin.js.Date
类-它是公开Date API的外部函数,所有比较都将以与JS相同的方式进行
看看这篇文章:
要使它工作,您应该使用getTime()
或在编写时提供包装类,或在测试类或其他util文件中创建重载的assertEquals方法
fun assertEquals(d1: Date, d2: Date) {
kotlin.test.assertEquals(d1.getTime(), d2.getTime())
}
不过,你还是需要注意进口
问题内容: 在Go中,如何检查对象是否响应方法? 例如,在Objective-C中,可以通过执行以下操作来实现: 问题答案: 一个简单的选择是仅使用您要检查的方法声明一个接口,然后针对您的类型进行类型断言;例如: 如果您打算对自己的类型进行任何疯狂的操作,则可能要使用该软件包。http://golang.org/pkg/reflect
我想检查一个对象是否有新的子对象。我的意思是我有一个带有x嵌套对象的对象,但是如果主对象有新对象,我会检查它。有什么现有的解决方案来检查这个问题吗? 我的目标是如果对象有新项目,则调用函数。每次数组更改时,此代码都会调用该函数。也当一些项目被删除。这部分功能是错误的。有办法修好它吗?
问题内容: 有没有一种快速的方法来检查对象是jQuery对象还是本机JavaScript对象? 例: 显然,上面的代码有效,但并不安全。您可能会向对象添加选择器键并获得相同的结果。有没有更好的方法来确保该对象实际上是jQuery对象? 符合 问题答案: 您可以使用运算符: 说明 :该函数(又名)被实现为构造函数。构造函数将以前缀调用。 调用时,内部jQuery将此转换为1。JavaScript继续
让我们考虑下面示例中的一个场景,其中我想检查对象的值或,但它在尝试访问第二级对象()时抛出异常'无法读取未定义的属性b。 最终,我想访问,如何使用lodash检查值是否为“未定义”或“null”?是否有方法检查一系列值中的对象?
问题内容: 假设类型 A的 对象存储在DB中。这是我使用hibernate从数据库加载特定数据库的方式: 如果id = 1的对象不存在,我将得到 ObjectNotFoundException 。但是,有没有一种方法可以检查此类对象是否存在而不必捕获异常?我想拥有的是: 找不到hibernate文档… 问题答案: 您可以使用: 如果对象在数据库中不存在,它将返回null。您可以在Hibernate
本文向大家介绍如何检查一个对象是否为空,包括了如何检查一个对象是否为空的使用技巧和注意事项,需要的朋友参考一下 检查一个数组为空很容易,直接调用 length 方法即可,那么如何检查一个对象是否为空呢 ❓ 这里的空指的是对象没有自有属性 假设这里有两个对象,一个是 obj 一个是 anotherObj 想了半天查看对象是否有 Symbol 属性只能使用 getOwnPropertySymbols