繁体   English   中英

我如何使用JUnit在一个Java类中对测试方法进行单元化而又没有在模块中完成其他类?

[英]How do I use JUnit to unit test methods in one Java class, without having completed other classes in the module?

所以我的问题是我正在IntelliJ IDEA中从事Java项目,在我的工作目录中,我有12-13个Java类文件。

我正在研究每个Java类,并且我想使用JUnit测试我在每个类中实现的方法。

我已经为这些类之一设置了一个testClass,但是,当我尝试运行它时,我想Java会尝试编译目录中的所有内容,并且由于未实现其他类,因此无法完成编译。

我的问题是:在无需实现目录中每个类的情况下,对单个类方法进行单元测试的最佳方法是什么?(我来自python背景,所以这个问题在Java中是否也有意义?)

谢谢。

如果您的类没有在您正在测试的方法中调用那些其他类的方法,那么如果编译器无法编译那些其他类,就不成问题。 提供要测试的类后,您应该可以在其中运行任何内容。

但是,如果您的类确实在其他尚不存在的其他类调用方法,那么您可能只想将要调用的所有方法的“空”版本放入所需的类中。 这将使您能够编译要测试的类。

如果希望所调用的方法在单元测试中具有特定的行为,以便测试调用这些方法时可能出现的某些情况,则应考虑使用“模拟框架”。 我可以很高兴地推荐JMockit或Mockito(尽管我不得不承认与Mockito开发团队有松散的联系)。

首先,欢迎使用Java语言! 祝您在Java方面度过与在Python中度过的美好时光。 大多数构建系统(Ant,Maven,Gradle等)通常会编译项目目录中的所有源文件。 为了使编译阶段成功完成,您需要一个程序,该程序应遵循语言语义以及所有可解析的引用符号(类,方法,包等)。

在用Java构建软件时,最好的选择是使项目中的文件保持健全状态。 这将使您可以在完成功能时对其进行测试。 在测试代​​码时,我一直处于位置,必须暂时注释掉已损坏的代码,直到我可以先解决其他问题为止。

正如@David Wallace所指出的那样,Mockito和JMockit是用于基于类间依赖的基于模拟的测试的优秀工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM