单元测试 – 单元测试MonoTouch项目的最佳方式?

实际上有一种使用NUnit和MonoDevelop测试运行器对MonoTouch项目进行单元测试的好方法吗?

我知道有官方的MonoTouch单元测试项目类型,但在模拟器中运行测试不是我想要的方式.现在我想用MonoDevelop测试运行器运行测试,之后一切都应该与Jenkins(CI)一起使用.

我知道UI特定代码的局限性,所以我想测试的所有东西都与MonoTouch本身无关,它都是关于separete项目中的业务逻辑.

通过向MonoTouch Library类型项目添加测试,我得到System.IO.FileNotFoundException,如下所述:http://ben.phegan.name/index.php/2011/02/28/monotouch-and-unit-testing/

通过使用单独的NUnit测试项目,我无法引用我的测试系统,因为它的项目类型是MonoTouch库项目类型,当然,它具有不兼容的目标框架(vMonoTouch).

所以,Touch.Unit没有任何真正的替代品,是吗?

解决方法

Is there actually a good way to unit test MonoTouch projects using NUnit

Touch.Unit

and the MonoDevelop test runner?

并不是的. MonoTouch项目依赖于需要在iOS(而不是OSX)下执行的monotouch.dll.因此,需要跑步者在模拟器或设备上执行.

现在你的问题有一些误解:

later everything should work with Jenkins (CI).

Touch.Unit已经使用iOS模拟器和/或设备与连续构建/集成服务器(只要它们运行OSX)一起使用.详情请见here.

I know the limitations about UI specific code,

Touch.Unit不是关于UI测试.事实上,它在UI测试方面非常糟糕(但这不是重点).

Touch.Unit是一个在iOS上执行的测试运行器.这允许你在自己​​的测试中使用MonoTouch / iOS API(它可能是UIKit,但它可能是StoreKit,GameKit,* Kit,任何基础类……它是一个相当大的世界).

So,there isn’t any real alternative to Touch.Unit,is it?

是.如果您的业务逻辑很好地隔离并且不依赖于monotouch.dll,那么您应该能够将其构建为:

>非MonoTouch项目(不同项目,相同来源),即与常规框架相关联;要么
>链接到单元测试程序集中的源代码(链接到常规框架);

那个经典的nunit测试程序集将是一个常规框架项目,并且能够从默认的NUnit运行程序或MonoDevelop单元测试运行程序中运行.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...