[英]How to use nUnit Tests in WinRT application?
我不知道如何在WinRT應用程序(地鐵)中使用nUnit。 我編寫此代碼並運行測試(使用Resharper測試運行程序)。 測試通過了。 為什么?
using System.Threading.Tasks;
using NUnit.Framework;
namespace UnitTestInWinRT
{
[TestFixture]
public class NUnitClassTest
{
[Test]
public void TestnUnitAsyncTest()
{
var number = GetNumberAsync(7);
number.ContinueWith(n => Assert.AreEqual("string is 6", n.Result));
}
public Task<string> GetNumberAsync(int n)
{
return Task.Run(() => "string is " + n);
}
}
}
問題是:
您使用ContinueWith方法。
終止在目標任務完成時異步執行的繼續。
因此,NUnit在其他線程中運行您的lamba,並結束測試方法。 AssertionExcecption
發生在其他線程中,這就是通過測試的原因。
如果您在同一線程中運行它,則測試將按預期失敗。
[TestFixture]
public class NUnitClassTest
{
[Test]
public void TestnUnitAsyncTest()
{
var number = GetNumberAsync(7);
number.Wait();
Assert.AreEqual("string is 6", number.Result);
}
public Task<string> GetNumberAsync(int n)
{
return Task.Run(() => "string is " + n);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.