我有以下白盒测试解决方案:
- 台风 - DI 框架
- KIF - 与 UI 交互的工具
为了测试每一个重要的边缘案例,我有时不得不“存根”来自后端的响应。我是通过修补组件来实现的(这里是完整的描述它是如何完成的:How to injection fake, stubbed or mock dependencies for Integration tests using Typhoon)
所以
在 KIFTestCase 的 beforeAll 方法中,HTTPClient 被修补到 FakeHTTPClient 中,它让我可以交换特定请求的响应。
项目架构
应用程序的生产代码在最关键的地方进行了重构,但在某些地方我不得不使用 defaultAssembly 来从图形中获取依赖关系,因此应用程序中的几乎每个程序集现在都是 deafultAssembly。
当然,TyphoonScopeSingleton 范围也存在依赖关系。
问题:
在修补 httpClient 之后,那些具有 Singleton 范围的组件被“刷新”——再次调用了 init。
如果我想动态替换图中的组件,例如在 beforeAll 方法中,可以使用 Typhoon 来完成,而无需“刷新”范围 Singleton 的依赖关系?