Xamarin.forms Xamarin UITest后门能否在iOS上返回值?

Xamarin.forms Xamarin UITest后门能否在iOS上返回值?,xamarin.forms,xamarin.ios,xamarin.uitest,Xamarin.forms,Xamarin.ios,Xamarin.uitest,我正在为Xamarin Forms移动应用程序编写自动测试。由于很难直接与嵌入式谷歌/苹果地图交互,我编写了一些后门方法,旨在获取地图提供给人类的所有信息。然而,在iOS上,我编写的方法没有提供返回值,尽管我的指示与此相反 到目前为止,我已经做了各种各样的事情,包括将方法简化为只返回伪字符串的存根。它仍然拒绝这样做。中的任何位置都表示无法在iOS上返回值 [Export("GetUnits:")] public NSString GetUnits(NSString val) // param u

我正在为Xamarin Forms移动应用程序编写自动测试。由于很难直接与嵌入式谷歌/苹果地图交互,我编写了一些后门方法,旨在获取地图提供给人类的所有信息。然而,在iOS上,我编写的方法没有提供返回值,尽管我的指示与此相反

到目前为止,我已经做了各种各样的事情,包括将方法简化为只返回伪字符串的存根。它仍然拒绝这样做。中的任何位置都表示无法在iOS上返回值

[Export("GetUnits:")]
public NSString GetUnits(NSString val) // param unused
{
    return new NSString("TEST"); // returns this value in the app, but it doesn't ever make it to the test harness
}
上面的代码应该将“TEST”返回到测试线束,然后在调用
app.Invoke(“GetUnits:,”)
后,它将在我的REPL中打印出来,这通常会产生

[

]
而不是

[
    "TEST"
]
方法命名正确,调用正确;如果我没有正确调用它(例如,错误的参数数量、错误的方法名称),并且插入到方法中的测试代码执行良好,则会出现错误消息,因此我知道它正在执行。它只是没有将值返回到测试线束。这种方法的等效Android版本非常有效

我在Xamarin论坛上发现一个人也有同样的问题,但他的话题已经两年没有被提及了。我在网上找到的每一件相关的东西都读过了,但都没有用


为格式化而编辑。(哎呀。)

以下是我们在自己的集成测试中使用的内容,以确保我们不会破坏此功能:

这句话就是我们所谓的后门:

_app.Invoke("backdoorWithString:", stringArg).ToString().ShouldEqual(stringArg);
在应用程序中,我们引用的后门是在本机应用程序中定义的,因此很难进行比较:

- (NSString *) backdoorWithString:(NSString *) value {
我建议将
导出
更改为正确的大小写:

[Export("getUnits:")]

另外,请检查此方法是否在您的
AppDelegate.cs
文件中。

以下是我们在自己的集成测试中使用的方法,以确保不会破坏此功能:

这句话就是我们所谓的后门:

_app.Invoke("backdoorWithString:", stringArg).ToString().ShouldEqual(stringArg);
在应用程序中,我们引用的后门是在本机应用程序中定义的,因此很难进行比较:

- (NSString *) backdoorWithString:(NSString *) value {
我建议将
导出
更改为正确的大小写:

[Export("getUnits:")]

另外,请检查此方法是否在您的
AppDelegate.cs
文件中。

您好,如果这是一个问题,您可以在此处提交。这不是Xamarin.Forms问题-我将把我知道的写在下面:-)嗨,如果这是一个问题,你可以在这里提交。这不是Xamarin.Forms问题-我将把我知道的写在下面:-)