作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的测试中使用 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/
我是一名优秀的程序员,十分优秀!