gpt4 book ai didi

unit-testing - 单元测试代码根据今天的日期进行日期处理

转载 作者:行者123 更新时间:2023-12-03 15:06:22 24 4
gpt4 key购买 nike

当代码处理基于当前日期的日期时,测试应涵盖边缘情况,例如leap年以及更频繁的月份和年份边界。

在我们的代码中,我们总是使用DateTime.Now(在本例中为.NET)在类中深入了解当前日期。

如何对此类代码进行单元测试?

这是Dependency Injection变得非常有用的地方吗?

编辑

除了一点点,但显然新版本的Typemock将允许伪造DateTime.Now

https://blog.typemock.com/2009/05/mockingfaking-datetimenow-in-unit-tests.html

最佳答案

在我们的代码中,我们总是使用DateTime.Now(在我们的例子中是.NET)提取当前日期。如何对此类代码进行单元测试?


这是一个依赖关系,并且是不确定的依赖关系。您需要将代码的职责再分配一些。

之前:


有一些代码使用当前日期时间来执行X。


后:


应该有一些代码负责获取当前日期时间。
应该有一些使用日期时间执行X的代码。


这两套代码不应相互依赖。

这种分离依赖关系的模式也适用于其他情况(数据库,文件系统等)。

关于unit-testing - 单元测试代码根据今天的日期进行日期处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/565289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com