java / jUnit使用一个公共方法测试类

时间:2013-11-19 18:00:01

标签: java testing junit

我有一个类有一个公共方法(为单一责任原则加油)除了在该方法中有一个尝试列出大约20个方法调用。在测试和/或重构和测试方面,我将如何解决这个问题?我是java的新手。寻找更好的方法来构建和测试此代码。任何建议/指向最佳实践将不胜感激!谢谢!

3 个答案:

答案 0 :(得分:1)

仅仅因为你有一个公共方法并不意味着你遵循单一责任原则。例如,如果您愿意,可以直接在main方法中编写整个项目。那个main将承担很多责任。

如果可以的话,我要做的就是通过公共方法测试它。如果你不能,那表明你班上有很多责任。您应该发现这些单独的职责,并使用自己的公共方法将它们移动到其他类中,然后分别测试新类。

答案 1 :(得分:0)

我同意之前的回答。您应该考虑使用接受参数并执行单个操作并返回结果的方法。如果您无法将代码分解为较小的段,则可以直接在代码中添加断言,而无需使用单独的单元测试类。这是一个链接,向您展示如何直接添加到您的代码。 http://www.deitel.com/articles/java_tutorials/20060106/Assertions.html

答案 2 :(得分:0)

查看方法的规范。 (有规格,对吗?)

说明中描述 one thing 的规范中的每个句子或部分句子都应该引发一个测试用例 - 也就是说,测试类中的一个方法包括一个断言。如果一个句子谈到不同场景中的行为(例如,如果价格字段> 0,那么在语句中添加一行,否则抛出IllegalArgumentException),那么它可能会给你多个测试用例。

但严重的是,在一个方法中有20个方法调用?这听起来像是一个脆弱的设计。请重新考虑一下。