TDD一个CRUD应用程序复杂的数据库设计

时间:2017-12-10 11:39:00

标签: java-ee tdd dao

我们被指派开发一个软件系统。它几乎缺乏任何业务逻辑,但简单的CRUD操作(以及某些形式的一些小控件)。 但问题是数据模型已经存在并且与UI表单无关。我的意思是每个表单只映射到多个表,或多个表上的多个列。

我相信我们将根据业务逻辑设计Object(实体 - 或DTO)模型,而不是复杂的遗留数据库设计。因此,应用程序仍然易于理解,并将所有复杂性包含在一组数据访问对象背后。

这会导致复杂的DAO对象,这是测试中最重要的目标。是否可以在没有数据库的情况下为DAO对象编写测试?怎么样?

1 个答案:

答案 0 :(得分:1)

我认为你错过了一层间接。

使用针对实际数据存储的集成测试来测试DAO,因为这些测试检查DAO成功执行这些查询的能力。

然后,缺失的层将是旧模型和新模型之间的转换层。该层可以很容易地进行单元测试,并且应该只包含在两者之间进行转换的纯函数。

这样可以使DAO简单易用,并使转换层更容易测试。