例如,我有一个Kotlin类和方法(如果重要的话是Spring托管类):
import org.springframework.stereotype.Service
import java.time.LocalDateTime
data class TestObj(
val msg: String,
val dateTime: LocalDateTime
)
@Service
class TestAnotherService {
fun doSmthng1(testObj: TestObj) {
println("Oh my brand new object : $testObj")
}
}
@Service
class TestService(
private val testAnotherService: TestAnotherService
) {
fun doSmthng() {
testAnotherService.doSmthng1(TestObj("my message!", LocalDateTime.now()))
}
}
我如何测试TestService
通过TestObj
,并将dateTime
作为LocalDateTime#now
?
我有几种解决方案:
assertEquals
中的比较中添加一个小增量。TestantherService#doSmthng1
dateTime
字段的对象中不是null
,甚至使用Mockito#any
。LocalDateTime#now
。@Configuration
class AppConfig {
@Bean
fun currentDateTime(): () -> LocalDateTime {
return LocalDateTime::now
}
}
并将使用LocalDateTime#now
的服务修改为:
fun doSmthng() {
testAnotherService.doSmthng1(TestObj("my message!", currentDateTimeFunc.invoke()))
}
哪个是最佳解决方案?或者可能还有其他解决方案?
只需将当前日期作为函数参数传递即可。
fun doSmthng(now: LocalDateTime = LocalDateTime.now()) {
testAnotherService.doSmthng1(TestObj("my message!", now))
}
在测试中,你可以通过一些特定的日期,并对其进行断言。其想法是注入依赖项,而不是在函数体中显式创建依赖项。
我在文档中看到的是< code>DateTime.now(),但它也返回Timespan,我只需要日期。
问题内容: 我需要将当前日期添加到JDBC调用的准备好的语句中。我需要以格式添加日期。 我试过了 但是我有这个错误: 有没有办法获取具有相同格式的对象? 问题答案: A 不是。相反。A 是一个。 您需要将其转换为使用,需要一个构造函数,一个可以提供。
问题内容: 如何使用Java获取当前日期和时间? 我正在寻找与C#等效的东西。 问题答案: 只需构造一个没有任何参数的新对象即可;这会将当前日期和时间分配给新对象。 在的话的Javadoc的无参数的构造函数: 分配一个Date对象并对其进行 初始化,以便它表示分配它的时间( 以最近的毫秒为单位)。 确保您使用的不是-后者没有零参数构造函数,并且语义有所不同,这是完全不同的对话的主题。:)
问题内容: 如何在JavaScript中获取当前日期? 问题答案: 使用生成一个新的包含当前日期和时间对象。 这将以mm / dd / yyyy的格式给您今天的日期。 只需更改为所需的任何格式。
问题内容: 用Java获取当前日期/时间的最佳方法是什么? 问题答案: 这取决于你想要的日期/时间形式: 如果你想将日期/时间作为一个单一的数值,则可以用UNIX纪元后的毫秒数(以Java形式)表示。该值是UTC时间点的增量,并且与本地时区无关…假设系统时钟已正确设置。 如果你希望日期/时间的格式允许你以数字方式访问组件(年,月等),则可以使用以下方式之一: 给你一个Date使用当前日期/时间初始
问题内容: 我有一个 yyyyMMdd 格式的String对象 。是否有一种简单的方法来获取具有相同格式的先前日期的String?谢谢 问题答案: 我会重写这些答案。 您可以使用 若要获得与使用Calendar计算的结果相同的结果。