iphone - iOS:Sqlite 的单元测试

标签 iphone ios unit-testing

请帮我回答这个问题:我应该为与 iOS 应用程序的本地数据库交互的数据访问编写单元测试,在本例中是 SQLite 数据库。如果应该,我该如何写它们?使用模型或使用数据库文件。

最佳答案

假设您想要测试程序的逻辑,而不仅仅是访问 SQLite 的能力,测试替身(模拟对象或虚拟对象)将为您提供比单独的数据库文件更容易维护的测试。一个单独的数据库文件必须在正确的行中包含正确的数据,如果您在一个测试中修改它,则必须在下一个测试之前重置它。如果您的测试数据不同步,您的测试将开始失败。具有文字测试值的模拟对象永远不会不同步。

使用模拟几乎会迫使您使用依赖注入(inject),因此您可以用它代替真实的数据对象。使用 db 文件不会强制您使用依赖注入(inject)。因此,如果您正在使用大量不遵循 DI 模式的现有代码,那么 db 文件将是“简单”的选择,尽管从面向对象的角度来看不是最佳选择。

关于iphone - iOS:Sqlite 的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13638593/

相关文章:

ios - iTunes 查找 API 在我的应用程序中返回旧数据

c++ - 如何在通过自动工具构建的项目中使用Google Test?

iphone - 将 UIView/UIWindow 中的特定触摸事件传递给下一个响应者(sendEvent :/hitTest: doesn't work )

ios - 将对象放置在标准分辨率无法访问的视网膜像素位置?

iOS - 动画背景问题

iphone - UIView 总是在最前面

ios - 跨 ViewController 设置和访问全局属性的正确方法是什么?

ios - 只有底部工具栏的 Hide Bars On Tap

python - 我如何在 celery 中测试 on_failure

unit-testing - 我如何在 Node.js 中构造 TDD?