单元测试:如何测试返回当前时间的方法

Posted

技术标签:

【中文标题】单元测试:如何测试返回当前时间的方法【英文标题】:Unit Testing: How to test a method returning current time 【发布时间】:2012-12-15 16:09:09 【问题描述】:

假设我有一个名为Now 的方法,一旦被调用,它应该以纪元格式(以毫秒为单位)返回当前时间。是否可以测试这种方法是否返回正确的值?测试这种方法有意义吗?

【问题讨论】:

你会使用哪种测试方法? 你如何获得当前时间? @Yannbane 我正在使用 boost 测试库。 使用其他时间获取方法(前后)来测试准确性。在循环中多次调用它,以确保它像你希望的那样精细。 @Yakk,我认为你的方法会奏效,但这是一种解决方法。如果你问我,最好的方法是与获得时间的机制进行交互。 【参考方案1】:

此方法很可能只是对标准库的调用的包装。标准库不需要任何测试。您需要测试的只是从标准库中获取某些内容并将其转换为您需要的格式的代码。所以我建议你把这段代码移到一个单独的方法中,并通过不向它提供从标准库返回的当前值来测试它,而是用已知正确结果的固定值。

【讨论】:

以上是关于单元测试:如何测试返回当前时间的方法的主要内容,如果未能解决你的问题,请参考以下文章

返回 IHttpActionResult 时如何对 Web api 操作方法进行单元测试?

Request.GetOwinContext 在单元测试中返回 null - 如何在单元测试中测试 OWIN 身份验证?

用 Jest 模拟 Firebase 功能(单元测试)

单元测试数据访问层 - 测试更新方法?

如何在验证方法 nuxtjs vuejs jest 中对代码进行单元测试

如何通过phpunit对一个方法进行单元测试,该方法具有多个内部调用保护/私有方法?