首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于JUnit测试的Mockup JNDI数据源

用于JUnit测试的Mockup JNDI数据源
EN

Stack Overflow用户
提问于 2019-11-02 07:14:01
回答 1查看 168关注 0票数 0

我试图将JNDI数据源模拟到JUnit测试中,但由于某些原因它不起作用:

我使用这些导入:

代码语言:javascript
复制
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;    
import javax.activation.DataSource;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.xml.bind.JAXBException;    
import org.junit.BeforeClass;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.mock.jndi.SimpleNamingContextBuilder;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@SpringBootTest(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class)
public class BinCountryCheckFilterImplTest    {

    ..........

    @MockBean
    private static DataSource dataSource;

    @BeforeClass
    public static void setupJndi() throws Exception {
        SimpleNamingContextBuilder.emptyActivatedContextBuilder();
        Context context = new InitialContext();
        context.bind("java:global/production_gateway", dataSource);
    }

    @BeforeEach
    public void beforeEachTest() throws IOException {    
        ........          
    }

    @Test
    public void testBinCountryCheckFilterImpl(){
    .....

}

有什么办法可以解决这个问题吗?您看到导入的包有什么问题吗?我需要使用JUnit5。

EN

回答 1

Stack Overflow用户

发布于 2019-11-02 13:39:52

问题是你混合了JUnit 4和JUnit 5,也就是Jupiter。@RunWith和@BeforeClass来自Jupiter 4,@BeforeEach来自JUnit;@Test可能来自任何一个,具体取决于导入。

如果您在设置开始工作之前将@BeforeEach替换为@,那么至少您将更接近于正常工作。确保所有的导入都是从org.junit或org.junit.jupiter.api导入的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58666874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档