单元测试应用程序生命周期事件

Posted

技术标签:

【中文标题】单元测试应用程序生命周期事件【英文标题】:Unit testing application lifecycle events 【发布时间】:2011-04-27 08:32:40 【问题描述】:

我创建了一个继承 System.Web.UI.Page 的类。

在该类中,我覆盖了一些应用程序生命周期事件,例如 page_load 和 page_init。在调用这些事件的基础之前,我会检查会话值、cookie 和类似的东西。

我想对检查会话和 cookie 的方法进行单元测试。我已经能够模拟会话和 cookie 对象。是否可以对应用程序生命周期事件进行单元测试?还是我唯一的选择是完全重构类,以便从生命周期事件中调用的所有方法都在一个单独的类中?

【问题讨论】:

【参考方案1】:

如果您能够模拟相关对象,您可以直接调用生命周期方法。但我不知道这是否是个好主意。恕我直言,任何单个生命周期事件处理程序都应该执行多个任务,每个任务可能都应该委托给其他一些类 - 您应该对这些代码进行单元测试。

我的个人习惯是直接测试实用程序/服务/存储库代码,并将代码直接留在生命周期事件中,仅适用于集成测试,而不是单元测试。

【讨论】:

以上是关于单元测试应用程序生命周期事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用常规活动生命周期事件的情况下检测/拦截应用程序生命周期事件

单元测试

小程序转发事件生命周期

如何在 Jest 单元测试中模拟在 `created` Vue 生命周期挂钩中调用的方法,而不使用`shallowMount` 中已弃用的`methods` 参数? [复制]

Maven生命周期

xamarin.forms 中的页面生命周期事件