Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单元测试:查找类依赖项_Java_Eclipse_Unit Testing_Dependencies - Fatal编程技术网

Java 单元测试:查找类依赖项

Java 单元测试:查找类依赖项,java,eclipse,unit-testing,dependencies,Java,Eclipse,Unit Testing,Dependencies,在编写单元测试时,是否有自动工具来查找类依赖关系 举例说明我的意思: 我们想为要测试的类编写单元测试。因此,我将编写一些测试来验证类的预期行为。现在我仍然不知道是否存在类依赖,因为ToBeTested可能使用了很多其他类。这一点很重要,因为我们希望打破这些依赖关系,或者至少确保它们是安全的(已经过测试) 到目前为止,找到依赖项的最佳方法是使用eclemma,它为我提供了一个类列表,其中包含测试期间运行的代码 但是要知道,我是手动输入这些类的,有没有更简单/自动的方法来获取这些类,甚至在我的jav

在编写单元测试时,是否有自动工具来查找类依赖关系

举例说明我的意思:

我们想为要测试的类编写单元测试。因此,我将编写一些测试来验证类的预期行为。现在我仍然不知道是否存在类依赖,因为ToBeTested可能使用了很多其他类。这一点很重要,因为我们希望打破这些依赖关系,或者至少确保它们是安全的(已经过测试)

到目前为止,找到依赖项的最佳方法是使用eclemma,它为我提供了一个类列表,其中包含测试期间运行的代码

但是要知道,我是手动输入这些类的,有没有更简单/自动的方法来获取这些类,甚至在我的java程序中使用这个列表

编辑:对不起,我使用的是eclipse和java。

因为单元测试(几乎总是)是白盒测试,所以您只需查看被测试类的源代码即可查看其依赖性

一些自动化工具生成的依赖项列表理论上可能听起来不错,但根据我的经验,它不会有多大帮助-您需要逐个检查依赖项,从当前测试的角度确定哪些是真正重要的依赖项,然后为单元测试正确地设置/模拟它们。这部分不能自动化(我怀疑它永远不会自动化)

实现这一点的最简单和最好的方法(对我来说)是使用最简单的测试夹具开始运行测试,即通常
ToBeTested tested=new ToBeTested()
。如果成功,我将向对象上所需的方法添加调用。如果这也成功了(即运行时没有抛出异常),我将添加断言。如果(当)这些步骤中的任何一个失败时,我会检查/调试代码,看看哪里出了问题,并扩展测试夹具以涵盖这一点

在最好的情况下(TDD在您自己的代码上,正在新开发),这个过程当然要简单得多,因为类从一开始就被设计为可测试的,因此它具有最少数量的依赖项,并且您已经知道这些。在最坏的情况下(为遗留代码编写单元测试),这可能是一个痛苦但有益的探索和重构过程,创建第一个工作测试需要几个小时。但是下一步会容易得多,在第三次之后,我几乎总是开始生成更多的测试,就像传送带一样。

因为单元测试(几乎总是)是白盒测试,所以您可以简单地查看被测试类的源代码以查看其依赖性

一些自动化工具生成的依赖项列表理论上可能听起来不错,但根据我的经验,它不会有多大帮助-您需要逐个检查依赖项,从当前测试的角度确定哪些是真正重要的依赖项,然后为单元测试正确地设置/模拟它们。这部分不能自动化(我怀疑它永远不会自动化)

实现这一点的最简单和最好的方法(对我来说)是使用最简单的测试夹具开始运行测试,即通常
ToBeTested tested=new ToBeTested()
。如果成功,我将向对象上所需的方法添加调用。如果这也成功了(即运行时没有抛出异常),我将添加断言。如果(当)这些步骤中的任何一个失败时,我会检查/调试代码,看看哪里出了问题,并扩展测试夹具以涵盖这一点


在最好的情况下(TDD在您自己的代码上,正在新开发),这个过程当然要简单得多,因为类从一开始就被设计为可测试的,因此它具有最少数量的依赖项,并且您已经知道这些。在最坏的情况下(为遗留代码编写单元测试),这可能是一个痛苦但有益的探索和重构过程,创建第一个工作测试需要几个小时。但是下一步会容易得多,在第三次之后,我几乎总是开始制作更多的测试,就像传送带一样。

是的,一个是JDepend,它分析包依赖关系。我们使用它来自动检测包之间的周期性依赖关系。我不知道检查测试本身的依赖性有多容易

关于在单元测试中使用JDepend的更多详细信息,请参阅


还有一个用于可视化依赖关系的工具。

是的,一个是JDepend,它分析包依赖关系。我们使用它来自动检测包之间的周期性依赖关系。我不知道检查测试本身的依赖性有多容易

关于在单元测试中使用JDepend的更多详细信息,请参阅


还有一个用于可视化依赖项的方法。

nice,但看起来这只适用于包。我对classesnice更感兴趣,但看起来这只适用于软件包。我对上课更感兴趣