gpt4 book ai didi

java - 如何用 jmockit 模拟 InitialContext 类?

转载 作者:行者123 更新时间:2023-12-03 20:24:05 24 4
gpt4 key购买 nike

我在我的测试中使用 jmockit,我想测试一个类,直接使用 InitialContext。所以我有以下内容:

public class MyClass {
public void myMethod() {
InitialContext ic = new InitialContext();
javax.mail.Session mailSession = ic.lookup("my.mail.session");

// rest of method follows.....
}

在我的测试用例中,我调用它来使用我的“模拟”InitialContext 类:

Mockit.redefineMethods(InitialContext.class, MockInitialContext.class);

用 jmockit 模拟 InitialContext 类的最佳方法是什么。

我已经尝试了几种方法(例如使用我自己的 MockInitialContextFactory),但一直陷入同样的​​错误:

NoClassDefFoundError: my.class.MockInitialContext

根据我在 Google 上看到的内容,使用 JNDI 进行模拟非常讨厌。请任何人都可以为我提供一些指导,或指出我的解决方案吗?那将不胜感激。谢谢。

最佳答案

我现在已经有一年没有人在这里发帖了,但自从最近我开始使用 JMockit 模拟 EJB 调用以来,我觉得分享是正确的。 (虽然我没有测试过代码应该非常相似)

你可以在你的 TestCase 中定义一些 Mocked 对象作为字段:

@Mocked InitialContext mockedInitialContext;
@Mocked javax.mail.Session mockedSession;

然后在您的 testXXX 方法中您可以定义您的 Expectations(),之后只需调用您想要测试的方法即可。

public void testSendindMail(){
new Expectations(){
{
mockedInitialContext.lookup("my.mail.session");returns(mockedSession);
}
};
MyClass cl = new MyClass ();
cl.MyMethod();//This need JNDI Lookup
}

关于java - 如何用 jmockit 模拟 InitialContext 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174881/

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