请帮我回答这个问题:我是否应该为与iOS应用程序的本地SQLite数据库交互的数据访问编写单元测试。如果应该,我该如何编写它们?使用模拟数据还是使用db文件。
请帮我回答这个问题:我是否应该为与iOS应用程序的本地SQLite数据库交互的数据访问编写单元测试。如果应该,我该如何编写它们?使用模拟数据还是使用db文件。
假设您想要测试程序的逻辑而不仅仅是访问SQLite的能力,那么使用测试替身(mock对象或虚拟对象)将使您的测试比单独的数据库文件更容易维护。单独的数据库文件必须在正确的行中有正确的数据,如果您在一个测试中进行修改,则必须在下一个测试之前重置它。如果您的测试数据失步了,您的测试将开始失败。具有文本测试值的Mock对象将永远不会出现失步。
使用模拟对象将强制您使用依赖注入,以便您可以将其替换为实际数据对象。使用数据库文件将不会强制您使用依赖注入。因此,如果您正在处理许多不遵循DI模式的现有代码,则数据库文件将是“简单”的选择,虽然从面向对象的角度来看并非最佳选择。
CoreData
、plist
或任何可序列化的对象。 - holex