没有公共建设者的模拟密封课程?

Pet*_*ith 6 c# unit-testing rhino-mocks

我正在测试的特定类依赖于HttpSessionState对象.

HttpSessionState类没有公共构造函数.被测试的类仅将此对象用作NameValue存储.该类在ASMX Web服务中用于返回特定方法的信息.

我正在考虑在HttpSessionState类周围创建一个Facade,我可以在测试中提供Dictionary <string,string>而不是Session对象.

这是一个好主意还是标准做法?

Mar*_*k W 8

是的,正如那句老话所说,没有什么是无法通过添加另一层抽象来解决的.我通常只是隐藏接口背后的类型,其中接口的方法是在该类型上执行我想要的操作所需的唯一方法.

只是模拟隐藏HttpSessionState的接口,并对接口的使用做Asserts,在Rhino Mocks中它只是AssertWasCalled(d => ....)等.

  • "通过添加另一层抽象无法解决任何问题" - 除了"多层抽象"=) (3认同)