【发布时间】:2014-01-20 12:12:02
【问题描述】:
我是 C# 世界的新手,正在尝试对 Xamarin 进行评估。我一直在做一个小型的web api库,到目前为止进展顺利,但是现在我正在尝试测试网络组件,我遇到了一些麻烦。
OS: OS X 10.9.1
Xamarin: 4.2.2 (build 2)
Library: PCL targeting 4.0 (Profile158)
Nunit target: Mono / .NET 4.5
类/方法:
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Net.Http;
namespace LibTest
{
public class AsyncTest
{
public async Task<string> DoTest()
{
return await new HttpClient().GetStringAsync( "http://www.reddit.com/.json?limit=1" );
}
}
}
NUnit 测试类/案例:
using System;
using NUnit.Framework;
using LibTest;
namespace LibTestTests
{
[TestFixture]
public class LibTestTest
{
[Test]
public async void TempTest()
{
string data = await new AsyncTest().DoTest();
Assert.IsNotNull( data );
Assert.IsNull( data );
}
}
}
我的所有其他测试似乎都在工作(解析等),但这个测试只是通过了,就好像它通过了一样,但我不明白它是如何发生的,而且断言相互矛盾。
目前不支持此功能,还是我的实现不正确?
如果我使它与ContinueWith() / Wait() 同步,它会按预期工作,但显然我不想在我的库中重复实现,只是为了通过测试。
【问题讨论】:
标签: c# mono nunit xamarin async-await