feijão acesso Primavera de contexto de teste de integração Alfresco

user11044402:

Agora que os testes de integração Alfresco de módulos personalizados são executados usando Docker, gostaria de saber como fazer Spring beans adicionais disponíveis neste contexto e como o acesso Spring beans existente em classes de teste.

Até Alfresco 5.x, I usado para anotar a classe de teste com

@ContextConfiguration("classpath:alfresco/application-context.xml")

Isso fez com que o contexto da Primavera disponível. Para fazer feijão Primavera deste contexto disponíveis na classe de teste, eu anotado membros como este:

@Autowired
@Qualifier("authenticationComponent")
private AuthenticationComponent authenticationComponent;

Além disso, eu era capaz de definir feijão mola adicional na src/test/resources/alfresco/extension/test-context.xml.

É este o modelo de utilização ao escrever testes de integração para 6.xe Docker?

Pelo menos a anotação org.springframework.test.context.ContextConfigurationnão está incluído em uma compilação do módulo usando o SDK arquétipo Maven 4.0.0.

Este post no blog fala sobre as anotações acima mencionados. Mas as dependências puxados pelo pom.xmlcriado a partir do SDK 4 arquétipo não incluem essas anotações.

Uma abordagem diferente parece ser a única utilização

@RunWith(value = AlfrescoTestRunner.class)

na classe de teste de integração. Mas como faço para obter os grãos de primavera como nodeServiceinjetado? E como faço para declarar e tornar disponíveis Spring beans adicionais que são parte do meu módulo personalizado e exigido pelo teste de integração para ter sucesso?

Marcar Tielemans:

Você pode obter o contexto da Primavera através AlfrescoTestRunnerda seguinte forma:

@Before
public void setUp() {
    this.nodeService = (NodeService) super.getApplicationContext().getBean("nodeService");
}

Eu faço o mesmo com feijão personalizados: super.getApplicationContext().getBean(MyType.class);

Uma vez que os testes de integração executar no repositório, todo o contexto da Primavera está automaticamente disponível.

Note-se que as suas necessidades de classe de teste para estender AbstractAlfrescoITpara que isso funcione.

Uma classe de exemplo pode ser parecido com este:

package nl.open.mystuff;

import org.alfresco.rad.test.AbstractAlfrescoIT;
import org.alfresco.rad.test.AlfrescoTestRunner;
import org.alfresco.service.cmr.repository.NodeService;

@RunWith(value = AlfrescoTestRunner.class)
public class MyCustomIT extends AbstractAlfrescoIT {

    private NodeService nodeService;
    private MyType myType;

    @Before
    public void setUp() {
        this.nodeService = (NodeService) super.getApplicationContext().getBean("NodeService");
        this.myType = super.getApplicationContext().getBean(MyType.class);
    }
}

Em Alfresco SDK 3, você pode até mesmo adicionar seus próprios arquivos XML Primavera sob src/test/resources/alfresco/extension/*-context.xml. Eu imagino que isso funciona ainda, mas eu não tentei com SDK 4 mim.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=333250&siteId=1
Recomendado
Clasificación