我正在使用JUnit为没有单元测试的遗留代码编写一些更高级别的测试。大部分代码“吞噬”了各种未经检查的异常,如NullPointerExceptions(例如,仅打印堆栈跟踪并返回null)。因此,即使在较低级别代码的各个点存在级联灾难,单元测试也可以通过。有没有办法让测试在第一个未经检查的异常上失败,即使它们被吞没了?我能想到的唯一替代方法是编写一个自定义JUnit包装器来重定向System.err,然后分析输出中的异常。 最佳答案 如果您在IDE的调试器中执行测试,您可以将IDE配置为在抛出异常时中断。
我一直在阅读Factory模式,并且看过一些文章,建议将工厂模式与依赖注入(inject)结合使用,以最大限度地提高可重用性和可测试性。虽然我还没有找到这个Factory-DI混合体的任何具体示例,但我将尝试并提供一些我的解释的代码示例。但是,我的问题实际上是关于这种方法如何提高可测试性。我的解读:所以我们有一个Widget类:publicclassWidget{//blah}我们想包含一个WidgetFactory控制Widget的build小号:publicinterfaceWidgetFactory{publicabstractstaticWidgetgetWidget();}p
我在嵌入式模式下使用openEjb来测试无状态sessionbean,它有一个注入(inject)的EntityManager。但是,当我运行测试时,它失败了,因为它无法初始化应用程序。当我看到控制台时,我还可以看到与无法找到persistence.xml有关的错误注意:我尝试将WebContent和META-INF放在类路径中,但这也无济于事。更新:在使用openejb+eclipse时,资源查找有一些非常奇怪的地方。我将WebContent添加到源文件夹。我不再收到persistence.xml错误,但现在我收到一个错误,表明openejb找不到任何托管资源我将WebContent
我有两个类:publicMyService{@AutowiredprivateMyDaomyDao;privateListlist;@PostConstructprivatevoidinit(){list=myDao.getItems();}}现在我想在单元测试中包含MyService,因此我将模拟行为MyDao。XML:单元测试:@ContextConfiguration("/test-context.xml")@RunWith(SpringJUnit4ClassRunner.class)publicclassMyServiceTest{@AutowiredMyServicemySe
我正在为我的应用程序使用SpringBoot1.5。在集成测试中,我想获取Web服务器的运行时端口号(注意:TestRestTemplate在我的情况下没有用。)。我尝试了几种方法,但似乎都不起作用。以下是我的方法。第一种方法@SpringBootTest(classes=TestConfig.class,webEnvironment=WebEnvironment.DEFINED_PORT)publicclassRestServiceTest{@LocalServerPortprotectedintport;在我的src/main/resources/config/applicatio
我正在处理一些现有代码,试图添加到它并增加它的单元测试。但是在使代码可测试方面遇到了一些问题。原始构造函数:publicInfo()throwsException{_ServiceProperties=newServiceProperties();_SshProperties=newSshProperties();}我知道这很糟糕,而且显然不可测试。在junit环境中,这个类每次都无法创建,因为它无法找到必要的属性来构造自己。现在,我知道通过将以“new”开头的任何内容作为参数移动的简单更改,此类将更易于测试。所以我最终得到:新构造函数:publicInfo(ServiceProper
我在Idea中打开maven项目。我将用于单元测试的文件存储在文件夹\src\test\resources但问题是用于测试的文件是java文件。尽管“mvnpackage”跳过了这些文件,但在Idea中打开时它会尝试编译它们。是否可以从要在Idea中编译的源中排除包含java文件的文件夹?我使用的是IntelliJIdea9.0.3 最佳答案 尝试File->Settings->Compiler->Excludes将您的路径添加到Path并选择Recursively 关于java-排除包
在Java中有自动安全测试这样的东西吗?如果是这样,它是如何实现的?它只是为尝试利用已知的服务器漏洞而编写的JUnit测试,还是它们以安全为中心的测试框架?作为一个segue,我也对这个OWASP安全测试框架感兴趣,但无法判断他们是在经典意义上使用“框架”(意味着要遵循的一组指南和程序),还是在软件上下文(他们实际提供自动化安全测试组件的地方)。感谢任何能为我阐明这一点的人! 最佳答案 不知道它是否正是您要找的东西,但是StephenColebourne(joda-time和future新标准java8日期时间API的作者)有一篇关
我正在尝试使用mockito/powermock模拟私有(private)方法。我得到NullpointerException我尝试做的简单示例是:实际类(class)importcom.siriusforce.plugin.common.PluginSystem;importcom.wellsfargo.core.business.service.dp.fulfillment.MockitoBusinessService;publicclassMockitoBusinessOperationImplimplementsMockitoBusinessOperation{privateM
我有一个可运行的jar,我想在我的集成测试开始之前(在pre-integration-test上)在一个新进程中运行它,并在我的集成测试完成后让它终止(在集成后测试).我可以使用的东西之一是maven-antrun-plugin或exec-maven-plugin在pre-integration-test上启动新进程,但如何终止它?对于我想要实现的目标,也许有更好的解决方案?PS:我在Windows和Linux上构建我的项目,所以可移植性对我来说很重要。 最佳答案 您可以使用maven-process-plugin由BV开源以分别启