我正在测试的特定类取决于HttpSessionState对象。
HttpSessionState类没有公共(public)构造函数。被测试的类仅将此对象用作NameValue存储。该类在ASMX Web服务中用于返回特定方法的信息。
我正在考虑围绕HttpSessionState类创建外观,可以在其中提供Dictionary 而不是测试中的Session对象。
这是个好主意还是标准做法?
最佳答案
是的,正如古老的谚语所说,添加另一层抽象无法解决所有问题。我通常只是将类型隐藏在接口(interface)后面,其中接口(interface)的方法是执行我要对该类型执行的操作所需的唯一方法。
只需模拟隐藏HttpSessionState的接口(interface),并对接口(interface)的使用进行断言,在Rhino Mocks中,它只是AssertWasCalled(d => ....)等。