相关疑难解决方法(0)

TDD,DDD和封装

经过几年跟随我工作地点"建筑师"传下来的不良做法并认为必须有更好的方法,我最近一直在阅读TDD和DDD,我认为原则和实践将是一个非常适合我们编写的软件的复杂性.

但是,我见过的许多TDD示例都在域对象上调用一个方法,然后测试对象的属性以确保正确执行行为.

另一方面,业内几位受人尊敬的人(Greg Young最着名的是关于CQRS的讨论)主张通过删除所有"getters"来完全封装每个域对象.

因此,我的问题是:如果禁止检索域状态,如何测试域对象的功能?

我相信我缺少一些基本的东西,所以请随时称我为白痴并启发我 - 任何指导都将非常感谢.

c# tdd getter encapsulation domain-driven-design

23
推荐指数
2
解决办法
2774
查看次数

使用Moq模拟TraceListener

为什么Moq Verify失败并出现"Moq.MockException:未在模拟上执行调用"?

var mock = new Mock<TraceListener>();
var ts = new TraceSource("traceSourceName", SourceLevels.Verbose);
ts.Listeners.Add(mock.Object);

var message = "the message";

ts.TraceEvent(TraceEventType.Verbose, 0, message);
ts.Flush();
mock.Verify(x => x.WriteLine(message));
Run Code Online (Sandbox Code Playgroud)

c# trace system.diagnostics moq mocking

4
推荐指数
1
解决办法
1025
查看次数