Професионална програма
Loading...
+ Нов въпрос
TonyDimitrov avatar TonyDimitrov 27 Точки

Как да направим 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

Ако някой иска да сподели решение или идея ще се радвам да го разгледам.

Тагове:
0
C# OOP Advanced
TeodorStefanovPld avatar TeodorStefanovPld 1275 Точки

това го има в запса от упражненията.но и реално ти няма защо да тестваш служебен клас на Visual studio,изгледай видеото на Божо и ще видиш за какво става въпрос.

-1
TonyDimitrov avatar TonyDimitrov 27 Точки

Знам, че по принцип няма нужда да се тестват служебни класове но такова е просто упражнението, в условието го пише. 

Иначе на упражнението от последната инстанция на курса не се стига до тая задача тя е пред последна. 

0
kolchakov96 avatar kolchakov96 3 Точки

Важно е да се абстракт-не работата с дати и време, защото след време като Unit Test-ваш кода си, който зависи от конкретен час на деня unit test-овете ще минават само в някои части на денонощието. Така че тва е добро упражнение.

Иначе си направи Клас с virtual методи или другият вариант е, който да имплементира интерфейс с методите на DateTime и те вътрешно просто да извикват оригиналните. По този начин с Moq ще може да се моква и тества оригиналната логика, която е wrap-ната под твой контрол.

0
31/07/2018 19:19:23
TeodorStefanovPld avatar TeodorStefanovPld 1275 Точки

даде пълно безумие,ако тръгне да ти се чупи там значи,ms са объркали нещо никои никъде няма да те накара да го тестваш това,освен ако не искаш 100% покритие на кода с unit test което е някаква химера.А ако искам да тествам нещо такова просто ще пусна определен час на теста и ще гледам какво ще стане няма да моквам самото време....

-2