gpt4 book ai didi

java - JUnit、Spring (SpringJUnit4ClassRunner) 和 Spring 接线工作不正常(尝试从 Eclipse 和命令行 Maven 运行)?

转载 作者:行者123 更新时间:2023-11-30 11:36:50 24 4
gpt4 key购买 nike

我遇到了一个问题,我试图通过 spring 配置连接的 bean 无法正常工作?在我的测试用例中检查期间,bean 访问器显示为 null(但我确实在日志中观察到 setter 实际上将其设置为有效值。真的需要一些帮助...

代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="/test-context.xml")
public abstract class HistoryCompress extends TestBase {

private CompressionArchive compressArchive;
public void setCompressionArchive(CompressionArchive value)
{
this.logInfo("setting compression archive: %s, name: %s",value,value.getcompressionFormat());
this.compressArchive=value;
}

protected CompressionArchive getCompressionArchive()
{
return this.compressArchive;
}

@Test
public void getArchiveTypeName()
{
logInfo("test");
this.assertNotNull(this.getCompressionArchive(),"compression archive is null");
this.assertNotNull(this.getCompressionArchive().getcompressionFormat(), "format name is null");
logInfo("format: %s",this.getCompressionArchive().getcompressionFormat());
}

}

public class HistoryZipCompress extends HistoryCompress
{
public HistoryZipCompress()
{
this.logInfo("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
this.logInfo("-=-=-=--=- C'Tor HistoryZipCompress");
this.logInfo("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-");
}

}

public interface CompressionArchive {
public String getcompressionFormat();
public Map<String,String> getArchiveHashes(InputStream stream,String password) throws Exception;
}
public class CompressionArchiveZip extends IntegrationBase implements CompressionArchive
{
/* implementation methods*/
}


然后我尝试将其与以下配置连接起来

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:util="http://www.springframework.org/schema/util"
default-autowire="byName"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

<context:annotation-config />
<bean class="gdg.scc.integration.testcases.file.history.HistoryZipCompress">
<property name="compressionArchive" ref="zipArchive" />
</bean>
<bean id="zipArchive" class="gdg.scc.integration.global.helpers.compression.impl.CompressionArchiveZip" />
</beans>

当我运行它时,我观察到 HistoryZipCompress 被实例化了 3 次不同的时间,这是在 HistoryZipCompress 上运行 getArchiveTypeName 的尾部:

16-Jan 13:21:09 - INFO  - main - org.springframework.context.support.GenericApplicationContext - Refreshing org.springframework.context.support.GenericApplicationContext@2bfe605c: startup date [Wed Jan 16 13:21:09 MST 2013]; root of context hierarchy16-Jan 13:21:09 - INFO  - main - org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor - JSR-330 'javax.inject.Inject' annotation found and supported for autowiring16-Jan 13:21:09 - INFO  - main - org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@578bb31a: defining beans [fileSystemAPIUrl,defaultShopperAccount,shopperAccounts,orionAccountCredential,SCC.FileTypeMappings.js,fileTypeGenerator,regexToExtensionMap,activeMQMessageProperties,automatorServiceInfo,activeMQAutomtorPublisher,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,logResultsToAutomator,orionAccountHelper,gdg.scc.integration.testcases.file.history.HistoryZipCompress#0,zipArchive,extensionToMimeType]; root of factory hierarchy16-Jan 13:21:09 - INFO  - main - integration.testcases.file.history.HistoryZipCompress - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-16-Jan 13:21:09 - INFO  - main - integration.testcases.file.history.HistoryZipCompress - -=-=-=--=- C'Tor HistoryZipCompress16-Jan 13:21:09 - INFO  - main - integration.testcases.file.history.HistoryZipCompress - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-16-Jan 13:21:09 - INFO  - main - integration.testcases.file.history.HistoryZipCompress - setting compression archive: integration.global.helpers.compression.impl.CompressionArchiveZip@6a367507, name: zip16-Jan 13:21:09 - INFO  - main - integration.testcases.file.history.HistoryZipCompress - test16-Jan 13:21:09 - INFO  - Thread-0 - org.springframework.context.support.GenericApplicationContext - Closing org.springframework.context.support.GenericApplicationContext@2bfe605c: startup date [Wed Jan 16 13:21:09 MST 2013]; root of context hierarchy16-Jan 13:21:09 - INFO  - Thread-0 - org.springframework.beans.factory.support.DefaultListableBeanFactory - Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@578bb31a: defining beans [fileSystemAPIUrl,fileTypeGenerator,regexToExtensionMap,activeMQMessageProperties,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,integration.testcases.file.history.HistoryZipCompress#0,zipArchive,extensionToMimeType]; root of factory hierarchy

最佳答案

用@Autowired 注释该字段:

@Autowired
private CompressionArchive compressArchive;

放弃 xml 配置中的 HistoryZipCompress - 它在那里做什么?您不需要创建测试类的另一个实例,runner 会为您做这件事。

您需要为测试对象注入(inject) CompressionArchive 实例。Spring runner 管理您的测试对象 (HistoryCompress),但不知道您想要注入(inject) CompressionArchive 实例。

关于java - JUnit、Spring (SpringJUnit4ClassRunner) 和 Spring 接线工作不正常(尝试从 Eclipse 和命令行 Maven 运行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14367815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com