我可以使用Xamarin.Android单元测试应用程序中的新NUnit API吗?

时间:2017-08-31 07:18:20

标签: c# .net unit-testing xamarin.android nunit

我目前正在用NUnit / VS2017编写一个Xamarin.Android单元测试应用程序。我正在使用Xamarin提供的NUnit版本,该版本在我创建项目时自动引用,即NUnitLite。它的程序集Xamarin.Android.NUnitLite似乎是一个框架程序集而不是NuGet程序包,我无法卸载它。

我想知道,我是否坚持使用Xamarin选择放入NUnitLite的NUnit API?我想写

Assert.That(expected, Does.StartWith(actual));

但它看起来像that was added in NUnit v3,而Does类甚至不存在于NUnitLite中。这是否意味着我必须写

Assert.IsTrue(expected.StartsWith(actual));

代替?

1 个答案:

答案 0 :(得分:1)

Xamarin使用原始NUnitLite 0.7或1.0的分叉版本。 (他们实际上开始在版本0.7中使用它,我不确定它是否已更新为1.0。)

NUnitLite(仍可从GitHub上的NUnit项目获得)是一个框架,大致匹配NUnit 2.4 - 2.5的功能。流畅的,基于约束的测试的概念起源于NUnitLite,最终被添加到NUnit本身。

使用NUnit 3,我们消除了“Lite”和“Full”nunit之间的区别。允许NUnitLite与自执行测试程序集一起使用的额外代码被重构为一个单独的包,我们称之为“NUnitLite”。

回想起来,重命名是一个错误。在那里有两个NUnitLites显然令人困惑,其中一个是框架而另一个不是!但是,在这一点上,我不确定该怎么办。

使用Xamarin运行器和测试的替代方法是使用NUnit和NUnitLite 3.x.另一个选择是使用NUnit Xamarin跑步者,但是它还没有完全稳定。