2

在 DNN 6.1 中开发模块时,我正在使用 WebFormsMvp、NUnit、NSubstitue 和 FluentAssertions 进行 TDD。

正如许多 DNN 相关资源中所建议的那样,我想将我的演示者代码包装在一个 try/catch 块中,该块调用 DNN 的 ProcessModuleLoadException 方法来记录错误并向用户显示友好的错误消息。

但是,如果我这样做,我将无法在单元测试中测试特定错误(例如,如果在没有某些查询字符串参数的情况下调用模块,我想测试是否会引发(自定义)“ExpectedQueryStringParameterNotPresent”错误),因为特定的我正在测试的异常被包装被测代码的 try/catch 块吞噬。

有没有办法利用 DNN 的全局错误处理,并且仍然对特定异常进行单元测试?

4

1 回答 1

0

这在 DNN 中与您要进行单元测试的任何其他项目没有什么不同,ProcessModuleLoadException 只是一个 void,它执行一些内部日志记录并显示引发的错误。

如果没有代码示例,听起来您是在 Page_Load 方法中编写所有代码。将单个函数提取到它们自己的方法中,这些方法不处理自己的异常(或抛出您的自定义异常)并对它们进行单元测试。

于 2013-05-14T15:54:17.353 回答