android - 如何在 Xamarin 中测试所有内容

标签 android ios xamarin xamarin.ios uitest

所以我最近开始在我的移动应用程序中使用 Xamarin.UITest。它非常适合测试 UI、导航等。但是我对如何最好地测试应用程序的所有其他部分(即数据库、Web 连接、模型等)感到有些困惑。 该项目是跨平台的,使用共享项目。

这些其他测试是否应该与 UITest 一起使用,还是它们需要自己单独的项目? 此外,在 OSX 上的 Xamarin Studio 中,有没有一种方法可以测试特定的 .Net 代码,而无需构建和启动整个 iOS 应用程序?

谢谢

最佳答案

这个问题真的很广泛。

UI 测试应该只测试 UI 本身

  • 导航是否正常工作?
  • 所有内容都按应有的方式显示了吗?
  • UI 组件是否可见、启用、只读等。
  • 组件是否显示正确的数据?

您的业务逻辑应该在单元测试项目中进行测试

  • 您的类(class)是否正确处理传入的数据?
  • 他们是否在所有情况下都使用正确的参数触发正确的方法?
  • 他们是否准备了对网络服务、数据库或第三方库的正确调用? (您不在这里测试其他软件的正确行为)
  • 他们是否按预期抛出异常?

单元测试最能帮助您修复和避免错误。对于高质量代码,它们通常比所有其他测试重要得多。

集成测试用于测试其余部分

  • 数据库、网络服务、文件系统、操作系统 API 是否按预期工作?
  • 所有这些都能正常协同工作吗?
  • 一切都足够快吗?

有很多关于好的测试的好书和链接。在这里做太多了。

举几个例子:

通过这些链接、StackOverflow 和 Google,您会发现您的单元测试应该保留在一个单独的项目中。在 UI 测试中尽可能好地模拟您的业务逻辑。这样他们就不会测试您的所有代码。否则,您将导致 UI 测试经常失败,以便更改您的业务逻辑。每次更改单元测试时都必须更改 UI 测试。这很快就会变得烦人和令人沮丧。

关于android - 如何在 Xamarin 中测试所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32155623/

相关文章:

android - 如何在android中延迟加载共享库

android - 带有按钮的 ListView,但只有按钮被选中,而不是列表

ios - 了解 ibecon 距离

xamarin.android - 无法在 PCL 项目上安装 MVVMCross

c# - 如果没有为 AlertDialog 分配资源 ID,它是否会有资源 ID?

android - 适用于 Android 的谷歌地图 API 2 “Unfortunately, application has stopped."

ios - 返回 ENOTCONN 错误

ios - 自定义 UITableView 适当更新每个标签和 UIImage,除了一个 - 使用 Core Data 和 NSFetchedResultsController

MvvmCross:如何防止转换 ViewModel?

android - Xamarin 会帮助将 win32 DLL 移植到 android 共享库吗?