У меня есть класс в моем Xamarin PCL, который вызывает System.Reflection.GetRuntimeProperties. Например, предположим, что мой класс PCL имеет этот метод:
public string ExampleMethod(string arg) {
if(arg == null) return null;
IEnumerable<PropertyInfo> infos = this.GetType().GetRuntimeProperties();
return infos[0].Name;
}
Затем у меня есть проект Xamarin.UITest, который ссылается на проект PCL и тестирует этот класс. На данный момент у меня есть два тестовых случая в моем TestFixture, которые для нашего примера будут следующими:
[Test]
public void TestExampleMethod_ArgNull_Null(){
Assert.That (exampleInstance.ExampleMethod(null), Is.Null);
}
[Test]
public void TestExampleMethod_ArgNotNull_NotNull(){
Assert.That (exampleInstance.ExampleMethod("testValue"), Is.NotNull);
}
Когда я запускаю проект Xamarin.UITest, он компилируется, выполняет тесты и завершается нормально на платформах Android и iOS. Тест TestExampleMethod_ArgNull_Null проходит успешно, так как он возвращается раньше. Однако тест TestExampleMethod_ArgNotNull_NotNull завершается с ошибкой:
System.MissingMethodException: метод «RuntimeReflectionExtensions.GetRuntimeProperties» не найден.
Итак, похоже, что хотя все компилируется просто отлично, и я могу нормально запускать другие тестовые примеры, проект Xamarin.UITest не может ничего использовать в System.Reflection. Кто-нибудь знает, как мне отладить это?