我最近有一个getter函数,它只是使用特定的时间格式返回当前时间。由于它使用某些系统API返回当前时间,所以我想不出为此编写单元测试的方法。如何为'getCurrentTime()'函数编写单元测试?
任何人都可以对此提出建议吗?
我最近有一个getter函数,它只是使用特定的时间格式返回当前时间。由于它使用某些系统API返回当前时间,所以我想不出为此编写单元测试的方法。如何为'getCurrentTime()'函数编写单元测试?
任何人都可以对此提出建议吗?
您需要将系统API从您的系统中分离出来。
已知的方式来做到这一点是使用依赖注入。你在时间格式化程序中注入一个类来检索当前时间。
在单元测试中插入一个假CURRENTTIME API将返回预定的值,以便您可以检查您TimeFormatter的结果。 当您在生产中运行时,您使用System API。
理想的解决方案是不直接使用系统的时间,而是有你的所有代码各地使用系统的包装(假设的Java,说),你可以模拟出。这可能不可行,或者容易。
一个更简单的方法是将严格创建第二个方法做了格式化,它以时间为参数。然后,您可以轻松彻底地测试格式。
然后在你原来的方法调用新的方法,通过在系统中的时间(例如System.currentTimeMillis()
)也懒得写测试它。没有什么可以做错的,你可以做任何事情,在那个时候,所以没有什么可以测试的。
你想要测试什么?你想测试它返回正确的时间吗?或者时间以正确的格式返回? –
嗨丹尼尔,是的,我想测试它是否在正确的时间和正确的格式。 – zyzyis