Testing Windows Mobile-非UI应用程序的自动测试工具

Testing Windows Mobile-非UI应用程序的自动测试工具,testing,windows-mobile,compact-framework,automated-tests,Testing,Windows Mobile,Compact Framework,Automated Tests,我需要自动测试我的windows mobile应用程序。我的应用程序没有任何UI。因此,使用随机按键和鼠标点击的普通测试工具在这里不起作用。windows mobile是否有只测试后台处理的工具?根据您需要的测试级别,您有两个选项 综合测试 集成测试的目的是在现实世界中测试应用程序。因此,您将创建所有真实的东西,并编写代码来专门测试您的条件是否满足。然而,我相信,如果你试图测试GPS,那么这是不现实的。因为有人实际上必须移动设备 模拟单元测试 我以前做过GPS测试。其思想是对正在测试的对象进行沙

我需要自动测试我的windows mobile应用程序。我的应用程序没有任何UI。因此,使用随机按键和鼠标点击的普通测试工具在这里不起作用。windows mobile是否有只测试后台处理的工具?

根据您需要的测试级别,您有两个选项

综合测试 集成测试的目的是在现实世界中测试应用程序。因此,您将创建所有真实的东西,并编写代码来专门测试您的条件是否满足。然而,我相信,如果你试图测试GPS,那么这是不现实的。因为有人实际上必须移动设备

模拟单元测试 我以前做过GPS测试。其思想是对正在测试的对象进行沙箱处理。确保所有外部引用(例如,非对象的任何对象)都是接口。然后使用仅测试的实现来模拟这些接口

例如,我在一个GPS测试中使用了一个名为:inmea解释器的接口来触发某些事件,这些事件将由一个名为PositioningService的类拾取。 默认实现是第三方组件。 然而,由于inmea解释器是一个接口,我们可以创建一个实现,而不是使用实际数据,例如使用NMEA文件进行读取。这使我们能够测试PositionService在某些情况下(有时是奇怪的情况下)是如何工作的

然后我建议嘲笑其他外部引用。对数据库的调用可以只是一个虚拟对象,其中包含一个用于数据库调用的计数器,如果调用该计数器,该计数器将递增。然后,您可以使用一个NMEA文件编写一个测试,该文件将导致一个数据库调用,然后在单元测试结束时检查该虚拟对象以查看是否发生了该调用

我们使用可怕的MSTest完成了上述所有工作,但您可以使用我推荐的任何测试框架。我不确定是否有专门在设备上测试的选项。我们在桌面上运行了所有测试,因为我们很好地分割了代码,这样特定于设备的代码就可以被隔离,并且可以很容易地用桌面等价物替换

显然,单元测试的唯一问题是他们不测试硬件


我建议根据项目和团队的规模来进行这两种类型的测试,但要更加重视单元测试,因为它们更易于运行/管理。

应用程序的作用是什么?你想测试什么?例如,如果你正在应用程序中记录GPS位置,那么自动测试可能需要移动设备!您如何定义自动化测试?你能不能不使用单元测试?例如1。它应该能够监视应用程序的某些事情,如短信、呼叫日志是否被正确截获以及数据是否被传输到服务器。2.若设备超出特定区域,则应将其记录到数据库中。3.它应该能够与服务器通信而不会出现问题等。