我正在为我的 Xamarin.Forms 应用程序编写 Xamarin.UI 测试。我想知道是否可以通过测试来模拟来自 MessagingCenter 的消息?或者可能发送一个将被 Android 应用程序捕获的 Intent?
我想模拟来自某些硬件的输入/输出,这些硬件正在与我的应用程序内的 MessagingCenter 通信它的状态。
如果有人遇到过类似情况或确定不可能这样做,如果他们分享他们的经验,我会很高兴。
非常感谢 :)
我正在为我的 Xamarin.Forms 应用程序编写 Xamarin.UI 测试。我想知道是否可以通过测试来模拟来自 MessagingCenter 的消息?或者可能发送一个将被 Android 应用程序捕获的 Intent?
我想模拟来自某些硬件的输入/输出,这些硬件正在与我的应用程序内的 MessagingCenter 通信它的状态。
如果有人遇到过类似情况或确定不可能这样做,如果他们分享他们的经验,我会很高兴。
非常感谢 :)
所以,我设法实现的是我一直在寻找一个我直到现在才知道的整洁的东西 ->后门方法
我在我的 MainActivity.cs 中添加了一个后门方法,它从 UITests 接收硬件状态,然后通过 MessagingCenter 将其发送到我的 Forms 应用程序。
MainActivity.cs 中的后门方法:
[Export("BackdoorSendStatus")]
public void BackdoorSendStatus(string status)
{
// In through the backdoor - do some work.
MessagingCenter.Send(App.Instance, "StatusTopic", status);
}
使用此方法的测试用例:
[Test]
public void Test_Backdoor()
{
App.Invoke("BackdoorSendStatus", "OFFLINE");
Thread.Sleep(5000);
App.Invoke("BackdoorSendStatus", "ONLINE");
}