不幸的是:
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
TweetServiceTest.java
Session session;
TweetService tweetService = new TweetServiceImpl();
@Before
public void setUp() throws Exception {
session = Mockito.mock(Session.class);
HibernateUtil hibernateUtil = Mockito.mock(HibernateUtil.class);
Mockito.when(hibernateUtil.getSession()).thenReturn(session);
}
Hibernateutil.java
public static Session getSession() {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().getCurrentSession();
if (!session.isOpen()) {
session = HibernateUtil.getSessionFactory().openSession();
}
} catch (Exception e) {
e.printStackTrace();
}
return session;
}
Mockito不模拟静态方法。只有实例方法。
模拟静态方法将需要重新定义类本身。
模拟实例方法只需要创建动态生成的子类的实例,该子类覆盖超类的所有方法。
我正在编写一个类的单元测试,但我得到了一个错误 when()需要一个参数,该参数必须是模拟上的方法调用 错误:
当我尝试运行代码时,它会导致我遇到一个异常。 LoginController.java sampleClass.java MissingMethodInvocationException:when()需要一个必须是“mock上的方法调用”的参数。例如:when(mock.getarticles()).ThenReturn(articles); 此外,出现此错误的原因可能是:1。您使用final/p
问题内容: 我有一个使用Mockito和Spring Test框架的非常简单的测试用例。当我做 我得到这个例外。 我尝试使用不同的方法,但继续收到此错误消息。我在Mockito中使用Spring 3.1.0.RELEASE。请分享并指导我正确的方向。 问题答案: 您需要先创建pcUserService的MOCK,然后使用该模拟。
我没有使用任何框架 编辑测试代码 saveServlet.java
编辑测试代码 保存服务器.java patient.java
问题内容: 方法签名是方法声明的一部分。它是方法名称和参数列表的组合。 因此,我只想传递构成所有参数的请求对象,而不是指定参数列表。并非所有方法都正确,但是想在任何可能的地方尝试。 举例来说 也可以写成 但是由于他不知道参数,因此呼叫者可能会感到困惑。 这是一个好习惯吗??? 问题答案: 我不会在“可能的地方”这样做- 但这通常是一个好主意,是的。基本上,请问问自己,参数本身是否构成一个连贯的单个