|
12
|
| jeef3 · 技术社区 · 16 年前 |
|
|
1
8
这是签退的代码。
看起来您需要一个CookeIElessHelperClass实例。太糟糕了,它是内部密封的——除非你用的是typemock,否则无法模仿它。+包装建议:1) |
|
|
2
19
在这种情况下,nullReferenceException实际上正由调用引发:
您可以通过调用以下命令来测试此断言:
…这也将返回NullReferenceException。与接受的回答相反,如果您尝试拨打:
…从即时窗口返回,不会出错。 您可以这样修复异常:
……
|
|
|
3
13
您始终可以将formsAuthentication.signout()包装到另一个方法中,并对其进行存根/模拟。 创建iformsAuthenticationWrap接口。
创建实现IFormsAuthenticationWrap的Wrap类
你的主叫课看起来是这样的:
现在让我们开始测试。你可以用moq做存根/模拟,但我将在这里演示你如何手动完成。 创建存根/模拟类:
最后一次写测试:
|
|
|
4
2
包装是干净的方法。 您在评论中提到“这将是一个相当大的应用程序”,这是使用包装器的另一个论点,而不是相反的。在一个大的应用程序中,您希望有清晰的依赖关系,并且您希望测试可以很容易地完成。 您正在交换干净的依赖项,这些依赖项可以很容易地注入到测试中ASP.NET内部工作的模糊依赖项之上。 另一方面: 使用反射镜 .老实说,我不知道ASP.NET这一特定部分的内部依赖性,但您可以通过Reflector消除任何疑问。 |