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;
}
次に、PCL プロジェクトを参照してこのクラスをテストする Xamarin.UITest プロジェクトがあります。これまでの TestFixture には 2 つのテスト ケースがあり、この例では次のようになります。
[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 で何も使用できないようです。これをデバッグする方法を知っている人はいますか?