如何对单元测试Xamarin.Forms行为
问题描述:
根据original blog“行为是强大的,因为它们可重复使用并且易于并入单元测试,因为它们是独立的功能块。”如何对单元测试Xamarin.Forms行为
但是看起来,构建独立于平台的单元测试并不那么容易,因为Xamarin中的所有可视元素都不是基于接口的,所以没有办法对它们进行模拟,并且单独测试行为。
使用“真实”元素也不起作用,除非您进入UI测试路线。
该行为需要监听某些事件(尤其是焦点),并且element.Focus()不起作用,并且当它不是“真实”UI的一部分时返回false。我尽量避免为此创建2个平台特定的测试。
那么,我该如何处理呢?
答
为了单元测试Xamarin.Forms核心,您需要模拟平台。因为它是开源的,你甚至可以看看如何在GitHub上为XF完成单元测试:https://github.com/xamarin/Xamarin.Forms/tree/master/Xamarin.Forms.Core.UnitTests
好吧,IPlatformServices是内部的,所以我不能在那里重新使用模式。 Device.PlatformServices也是内部的。 –