Как да направим Mock на DateTime.Now?
Една от задачите от OOP Advanced е да се тестват методите на DateTime.Now, примерно .AddDays(...) и другите....
Опитах с Moq но нещо не я докарвам до правилен резултат.
PS: It is important that you test DateTime.Now, so don't use new DateTime()
А това е условието: https://pastebin.com/HMGj5w97
Ако някой иска да сподели решение или идея ще се радвам да го разгледам.
Знам, че по принцип няма нужда да се тестват служебни класове но такова е просто упражнението, в условието го пише.
Иначе на упражнението от последната инстанция на курса не се стига до тая задача тя е пред последна.
Важно е да се абстракт-не работата с дати и време, защото след време като Unit Test-ваш кода си, който зависи от конкретен час на деня unit test-овете ще минават само в някои части на денонощието. Така че тва е добро упражнение.
Иначе си направи Клас с virtual методи или другият вариант е, който да имплементира интерфейс с методите на DateTime и те вътрешно просто да извикват оригиналните. По този начин с Moq ще може да се моква и тества оригиналната логика, която е wrap-ната под твой контрол.
даде пълно безумие,ако тръгне да ти се чупи там значи,ms са объркали нещо никои никъде няма да те накара да го тестваш това,освен ако не искаш 100% покритие на кода с unit test което е някаква химера.А ако искам да тествам нещо такова просто ще пусна определен час на теста и ще гледам какво ще стане няма да моквам самото време....