我正在调试一个Tomcat Web应用程序,并遇到了一个带有main方法的类,其中包含一些测试代码。
有没有办法判断是否从Web应用程序调用了这个?或者这只是之前开发人员在IDE环境中测试的一种方式?
答案 0 :(得分:0)
不应该从应用程序中调用def check(p, l1, l2):
for a in l1:
if not any(p(a, b) for b in l2):
return False
return True
方法,但最好知道它是通过搜索类名是否被引用来检查它(在应用程序的所有项目上对类名进行文本搜索)更好,因为可以使用反射)。如果您没有找到任何参考,这是一个好兆头。如果你有参考,你应该明白为什么。
否则,接下来,你应该检查我们的战争中没有包含的课程。
它在战争中,您应该通过在项目的测试文件夹中移动它来排除它(例如,在Maven / Gradle中static void main()
)。
测试设计不好(没有单元测试)还是有用的测试代码?
这取决于。
有时,您需要在没有单元测试的情况下进行一些测试,因为您没有掌握您尝试测试的环境(远程Web服务,您不掌握的数据,因为外部等等),所以您不需要您的应用程序的构建因此而失败。通常,单元测试在构建中自动播放。
因此,您不应该使用单元测试来进行此类测试,而应使用src/test/java
。通过这种方式,您可以根据需要进行手动测试,无论结果如何,都没有构建失败。
如果您发现测试是针对此类需求进行的,则应添加Java注释。否则,如果测试是可重现的并且依赖于应用程序的内部服务而且不依赖于更改数据库数据,则应添加static void main()
注释以指示它应该转换为单元测试。