7
|
Kimi · 技术社区 · 14 年前 |
![]() |
1
7
Simply put: because large parts of the BCL weren't designed for testability. 在“核心”功能方面,随机数生成也是如此,而且许多与HTTP相关的类更容易被伪造出来:(至少在这种情况下,引入自己的时钟接口是相当容易的)。 On the plus side, when Noda Time 已准备好投入生产使用,它不仅提供比BCL更好的日期/时间API—它还提供了一个更易于测试的API:。 |
![]() |
2
1
我们始终使用一个DateTimeProvider包装类,如果需要,我们可以在测试上下文中重写它… |
![]() |
3
0
http://learn.typemock.com/typemock-isolator/ is able to mock DateTime ( 如此 日期时间 不再是问题了。但缺点当然是这可能导致开发人员设计他们的东西更糟糕,因为模仿日期时间是没有问题的。 Maybe using something like IDateTimeProvider is a better solution for such things. 但如果您使用的是第三方lib,它将在诸如datetime typemock isolatior之类的服务器上进行中继,那么可能需要解决方案/解决方案。 Also Microsoft Research's Moles/Stub is cool stuff: http://channel9.msdn.com/blogs/peli/moles-replace-any-net-method-with-a-delegate (shows how to replace any .NET method/property with a delegate - e.g. DateTime.Now ;-)) |
![]() |
4
0
我把这个答案贴到了另一个问题上,但如果你想找一个简单的测试方法,它也适用于这里。
What I like to do is create a public function that returns a DateTime (
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 3 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 4 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 4 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 4 月前 |