2016-07-22 50 views
0

我遇到了测试问题CRUD使用的操作JUnit使用JUnit测试数据库中的CRUD操作

我有一个Java应用程序与本地数据库一起工作,我必须测试这个数据库的实体的CRUD操作。

如果我实际上不能使用它们,我该如何测试CRUD操作?

例如,要测试创建操作是否有效,我必须验证新创建的条目实际上是否与输入数据相对应。如果我无法访问Read操作,我该如何做到这一点?

+0

CRUD - 创建,检索,更新,删除。我不能真正使用它们是什么意思? – Unknown

+1

尝试使用框架,如dbunit或dbsetup – noscreenname

+0

我的意思是我不能说如果读操作是正确的,所以测试创建操作,假设读取将工作是错误的。 而我不能使用dbunit,这是一个学校的事情,我必须使用junit – VGordon

回答

1

我认为你已经有了正确的答案,但无法遵循它或采取行动。 您想到的想法是这样的: 您不能对生产代码和测试代码使用一组操作。可以这么说:您需要两套独立的操作,其中您用于测试代码的操作已经被证明可以正常工作。

Independent Sets of Operations: Production vs Test

例如,当你要测试的创建实体操作,则需要通过其他渠道来测试数据库的状态(例如,通过选择与JDBC/SQL),这已经正常工作。 另一个测试案例可能是您希望测试实体操作的读取。然后,在您调用实体的操作之前,您应该通过JDBC/SQL设置数据库的初始状态,并使用INSERT,然后调用该实体的操作以检查预期结果。

这两组独立的测试方法非常重要,因为在测试之前您不能依赖它们。使用已经测试过的另一套独立方法,打破了这个鸡蛋问题。