【问题标题】:unit testing dotnetnuke module when using ProcessModuleLoadException使用 ProcessModuleLoadException 时对 dotnetnuke 模块进行单元测试
【发布时间】:2012-08-01 22:16:11
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请向我们展示您的代码

标签: unit-testing tdd dotnetnuke


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-22
    • 2021-09-14
    • 2022-10-18
    • 1970-01-01
    • 2020-06-08
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多