gpt4 book ai didi

c# - 单元测试 MvvmCross.Droid.View

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:26 25 4
gpt4 key购买 nike

我需要通过 Android 和 iOS View 中的单元测试来确认按钮的行为。

对于Android View ;我有一个继承自 MvxActivity 的 View 。我的 iOS View 继承自 MvxViewController。

如果我们以Android View 为例;我像这样绑定(bind)了按钮的点击事件:

_buttonUseVideo.Click += DisableButton;

事件处理程序如下所示:

private void DisableButton(object sender, EventArgs eventArgs)
{
_button.Enabled = false;
_localViewModel.Close();
}

我无法使用验收测试,因为单击按钮后表单会立即关闭。是否可以通过单元测试来测试这种行为?

最佳答案

我不确定 UnitTest 是否是适合您的正确答案,至少如果您想保持这种实现方式。

如果你想测试 UI 元素,你应该使用 Xamarin 的 UITest ( https://developer.xamarin.com/guides/testcloud/uitest/ ),你可以在其中做这样的事情,让测试预先完成所有需要的用户交互:

var isDrawerOpen = app.Query(d => d.Id("navigation_drawer").Invoke("isDrawerOpen", 3));
Assert.True((bool) isDrawerOpen[0]);

另一种选择是删除事件处理程序和 _button.Enabled = false 以将其替换为 MVVMCross Bindings。因此,您可以完全忽略 View ,只对您的 View 模型使用单元测试。

尽管在我看来,在 ViewModel 关闭之前测试按钮是否被禁用没有多大意义。还是您未与我们分享的按钮或 viewmodel.close() 发生了更多变化?

关于c# - 单元测试 MvvmCross.Droid.View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38879204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com