- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用中介者模式来促进 GUI 对象的单元测试。
伪代码示例:
Class MyGuiClass
{
//... Declare and initialize mediator to be a MyMediator
private void On_SomeButtonPressed()
{
mediator.SomeButtonWasPressed();
}
}
Class MyMeditator
{
public void On_SomeButtonPressed()
{
//.. Do something now that the button was pressed
}
}
这很好,因为我现在可以对按下 SomeButton 时发生的情况进行单元测试,而无需创建窗口。
我担心的是,我采用了一种私有(private)方法,并将其公开给任何调用调解器的人。过去我这样做过,但它并没有打扰我,因为我没有太多必须公开的方法。
我目前正在重构一个非常大的类以使用此模式,我想知道是否可以通过某种方式控制谁可以创建 MyMediator 或某些方法对哪些类公开的可见性。 (这可能不可能,甚至不需要,但我想我会问。)
(我正在使用 C# 3.0 和 .NET 3.5 SP1)
最佳答案
我认为没关系.. 除了 gui,谁有调解器的实例?如果有人这样做,它会调用该方法吗?如果有,这重要吗?是否很难注意到、诊断和修复错误?
我认为您可以通过事件实现您想要的:
例如
/* in the gui class (view) */
public event EventHandler OnButtonClicked;
/* in the mediator */
public MyMediator(MyView view)
{
view.OnButtonClicked += HandleButtonClicked;
}
private void HandleButtonClicked(object sender, EventArgs e)
{
}
关于c# - 使用调解器模式进行单元测试 - 所有私有(private)到公共(public),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664201/
我希望这是问这个问题的正确地方: 我一直在尝试通过 RoboVM (libGDX) 让 chartboost 在 iOS 上工作我正在使用 RoboVM 的 Mobidevelop 分支,所以我现在唯
这是我第一次在 android 中集成广告。我已经使用 google tutorial 集成了 Admob .现在,我想将 Admob Firebase 与 Facebook 中介结合使用。 我关注了
我正尝试通过与 AdMob 的中介来展示 MoPub 广告。我已经集成了所需的 list 条目,并添加了 MoPub SDK 和适配器 jar 。 我正在这样设置中介: @Override prote
我通过创建它们提供的适配器类的实例,使用 flurry 和 adfalcon 配置了 admob。 adBuilder.addNetworkExtras(flurryAdapter); 现在我也想整合
我正在运行多项中介分析,需要针对多重比较进行更正。但是,中介包提供的 p 值似乎已经四舍五入了,正如@Roland 在这个问题上的非常有用的回答中所观察到的那样: R mediation packag
我是一名优秀的程序员,十分优秀!