我正在为我的 Xamarin.Forms 应用程序运行单元测试,单元测试抛出Xamarin.Essentials.NotImplementedInReferenceAssemblyException
:
我为应用程序创建了一个单元测试项目(使用 NUnit 3.12.0)并编写了以下代码来测试功能。
[TestFixture()]
public class Test
{
[Test()]
public void TestCase()
{
AutoResetEvent autoEvent = new AutoResetEvent(true);
SomeClass someClass = new SomeClass();
someClass.SomeFunction((response) =>
{
Assert.AreEqual(response, "Hello")
autoEvent.Set();
});
autoEvent.WaitOne(); //** Xamarin.Essentials.NotImplementedInReferenceAssemblyException thrown here**
}
}
下面是来自 Xamarin.Forms 应用程序的测试代码:
public class SomeClass
{
public void SomeFunction(Action<string> callback)
{
// asynchronous code...
callback("Hello");
}
}
上述功能在 Xamarin.Forms 应用程序中运行良好。
注意:我读到可以使用 await/async,但是,我必须在整个项目中进行更改。目前这不是一个可行的解决方案。
编辑 1: 我创建了一个示例 Xamarin.Forms 项目,其中包含单元测试。该项目可在此处获得