Hacker News new | ask | show | jobs
by Belphemur 944 days ago
They should have gone further like .NET 8.0 with a full class abstraction for datetime provider: https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotn...

This is 10x better and helps to assure the code can be unit tested with providing the exact date we want in the exact format/timezone

1 comments

That's a lot of complexity. How's that better than requiring an arg with the timezone?
Because you can now fully simulate arbitrary times during testing by providing your own implementation of the time provider. If you just take in a timezone as an argument, how will you simulate it being 2041-08-23T21:17:05.023743Z?
Uh, just assign your mock function to `<insert name here>`? Python is really the wrong language to be complaining about a lack of mockability.
True. When you can just make any function be whatever you want whenever you want that sort of abstraction does seem a big much. I was responding to the specific question in reference to the time provider in .net 8.
Ah, fair enough. C# certainly presents more of a need for that sort of abstraction, being a statically typed language.