当前位置: 首页 > 知识库问答 >
问题:

单元测试-WebSphere LIberty中的模拟JNDI查找

邢璞
2023-03-14

我正在使用WebSphere Liberty 8.5.5服务器并在此服务器上编写一些批测试用例。我试图模拟jndi查找对象进行测试,但在测试用例中设置dataSource对象时,我遇到以下错误,有人知道如何设置INITIAL\u CONTEXT\u工厂吗

javax.naming.:需要在环境或系统道具中指定类名,或作为小程序参数,或在应用程序资源文件中指定类名:java.naming.factory.initialjavax.naming.spi.NamingManager.get(NamingManager.java:662)在javax.naming.NovalContext.getDefaultInitCtx(firalContext.java:307)javax.naming.URLOrDefaultInitCtx(firalContext.java:344)在javax.naming.的初始化ontext.lookup(初始化ontext.java:411)

共有1个答案

景阳平
2023-03-14

您需要在InitialContext构造函数的环境中设置初始上下文工厂的类名。

例如:

Hashtable<Object, Object> env = new Hashtable<>();
env.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.example.MockICF");
new InitialContext(env);

其中<代码>com。实例MockICF可以写成:

public class MockICF implements InitialContextFactory {

    private static Context ctx = new Mockery().mock(Context.class);

    @Override
    public Context getInitialContext(Hashtable<?, ?> environment) throws NamingException {
        return ctx;
    }
}
 类似资料:
  • 我面临一个问题,而嘲笑jUnit测试的东西。 情况如下: 类A实现了来自第三方jar的接口,并且需要实现method1。除了method1之外,A还包含method2,它是从method1调用的。method2本身调用一些外部服务。 我想单元测试方法1。 方法1接受输入,比如X。X有一个包裹在里面的输入变量,比如var1。var1由方法1中的逻辑使用,方法1在X中设置另一个变量,比如var2。 所

  • 我在尝试包装我的代码以用于单元测试时遇到了一些问题。问题是。我有接口IHttpHandler: 现在很明显,我将在Connection类中有一些方法,这些方法将从my后端检索数据(JSON)。但是,我想为这个类编写单元测试,显然我不想编写针对真实后端的测试,而是一个被嘲弄的测试。我曾尝试谷歌一个很好的答案,但没有很大的成功。我以前可以并且曾经使用过Moq来模拟,但是从来没有在像HttpClient

  • 我用Mockito进行了Java测试: Kotlin.TypeCastException:null不能强制转换为非null类型java.util.HashMap 如何正确模拟属性?

  • 我有一个Quarkus项目,我将大部分业务逻辑放在服务中,也就是使用@ApplicationScoped注释的可注入bean中,所有CRUD操作都在其中进行。在JAX-RS资源文件本身中,大部分逻辑只是验证,通常使用整个验证bean。这意味着我们需要在测试资源时模拟注入的服务,以防止单元测试成为本质上的集成测试。我们这样做有这样一个结构(示例项目); 文件模拟欢迎服务。java又是这样的: 我们的

  • 问题内容: 我正在为启动a 并使用返回的诺言执行一些逻辑的控制器编写单元测试。我可以测试触发$ modal的父控制器,但是我一生无法弄清楚如何模拟成功的诺言。 我尝试了多种方法,包括使用和强制履行承诺。但是,我得到的最接近的结果是与本 SO帖子中的最后一个答案相似的东西。 我已经在“旧的” 模式中看到了几次这样的问题。在“新” 模式下,我找不到太多的方法。 一些指针将不胜感激。 为了说明问题,我使

  • 我开始在我的项目中实践TDD,作为背景,它也包含遗留代码。我们使用Mockito作为一个模拟框架,并遵循Spring MVC方法。 有时,类用许多不同的对象作为属性实现。这些服务中有一些简单的方法,例如。 将使用许多对象来完成其职责 更新并保存事务 推进业务流程 关闭其他挂起的操作 但是,在执行这些操作时,该方法需要调用不同的来获取和更新事务、获取业务流程ID、获取挂起的事务(并保存其更新)。这意