如何编写Java e2e(端到端)测试

Dix*_*xel 5 java junit unit-testing end-to-end

所以...最近,我被强有力地介绍了单元测试的奇妙世界(grunt的业力(中间的AngularJS)),这是一个疯狂的旅程; 我真的无法相信我的代码在没有测试用例的情况下如何结合

无论如何,回到我的问题,在我正在做的Java项目中,我一直在为大多数类添加单元测试......但是现在我遇到了一个我无法找到答案的问题(或者我可能会问错误的问题),但我如何在Java中正确地进行e2e测试?我可以使用JUnit吗?或者我应该完全使用别的东西?我的项目还涉及大量的数据库移动,最近我读到如果测试使用数据库,它不再是单元测试......是否应该修改此测试?

这实际上是我第一次在这里发布一个问题=)但是我多年来一直在使用该网站找到答案...如果有任何额外的数据我应该添加或更改,请告诉我...我在此提前感谢所有人,不仅仅是对这个问题的答案,而是对所有问题的所有答案,这个令人敬畏的网站帮助人们分享...

amb*_*amb 2

我之前的所有答案都很有用,所以我不会重复相同的信息。

是的,如果在你的测试中你点击了一个数据库,那么它不是一个单元,而是一个集成测试,或者正如 javascript 社区中所说的那样,端到端(但我不知道为什么他们没有坚持相同的测试)术语)。根据我的经验,最好在 中启动事务@Before并在方法中拒绝它@After。通过这种方式,您可以确保您的结果尽可能接近现实世界,因为您没有模拟数据库访问(因此您可以检测数据库端是否发生问题)。

您还会看到很多相反的意见,人们想要模拟数据库访问,以便测试可以运行得更快,但我认为在这个时代,速度将不再是问题,所以您可以点击数据库而不是模拟它:)