|
|
1
3
我在ASP.NET MVC中遇到了类似的问题,其中缺少的是httpContext。您可以做的一件事是提供一个备用的构造函数,它允许您注入一个模拟的同步上下文或公开一个执行相同操作的公共setter。如果不能在内部更改SynchronizationContext,则在默认构造函数中创建一个设置为SynchronizationContext.current的属性,并在代码中使用该属性。在备用构造函数中,您可以将模拟上下文分配给属性——或者,如果给它一个公共setter,您也可以直接分配给它。 公共类ftppresenter:iftpPresenter { 公共同步上下文currentcontext get;set;
我将要做的另一个观察是,我可能会让您的演示者依赖于线程类的接口,而不是直接依赖于线程。我不认为单元测试应该创建新的线程,而应该与一个模拟类交互,该类只确保调用创建线程的正确方法。你也可以注入这种依赖。 如果调用构造函数时不存在synchronizationContext.current,则可能需要将分配逻辑移到getter中的current并执行延迟加载。 |
|
|
2
1
你的演示者需要很多应用程序逻辑。我将在一个具体的模型中隐藏上下文和线程,并单独测试功能。 |
|
|
Medet · 即使没有屏幕旋转,也保持ViewModel活动 8 年前 |
|
|
saradindu samal · 实现MVP设计模式的正确标准是什么 8 年前 |
|
|
Sermilion · 安卓:MVP。组件间通信的正确方式 8 年前 |
|
|
tur · CachingActivityMapper有什么意义? 10 年前 |
|
|
Jacob Phan · MVC模式。模型、视图和控制器之间的关系 10 年前 |
|
|
Lahey · MVP:被动视图(带EF)和图层 12 年前 |
|
|
Milambardo · MVP演示者在回发后订阅了活动 13 年前 |