我有一个jUnit测试,测试我的一个函数。在这个函数中,我调用了另一个类的方法,我想用mockito模拟这个方法。然而,我似乎不能实际嘲笑这一点。下面是我的jUnit测试的样子:
@Test
public void testingSomething() throws Exception {
mock(AuthHelper.class);
when(new AuthHelper().authenticateUser(null)).thenReturn(true);
Boolean response = new MainClassImTesting().test();
assertTrue(response);
}
编辑:在我的MainClassImTesting()中。我正在调用的test()函数,它调用authenticateUser()并向它传递一个hashMap。
如果您想模拟任何A类型参数的函数调用,只需执行:
AuthHelper authHelper = Mockito.mock(AuthHelper.class);
Mockito.when(authHelper.authenticateUser(any(A.class))).thenReturn(true);
Mockito将允许您创建一个模拟对象,并让它的方法返回预期的结果。因此,在这种情况下,如果您希望模拟的AuthHelper实例的authenticateUser方法返回true,而不管HashMap参数的值如何,您的代码将如下所示:
AuthHelper mockAuthHelper = mock(AuthHelper.class);
when(mockAuthHelper.authenticateUser(any(HashMap.class))).thenReturn(true);
然而,除非您的模拟对象具有访问或引用权限,否则它对MainClassImTesting没有用处。您可以通过将AuthHelper添加到MainClassImTesting的构造函数来实现这一点,这样类(包括您的测试方法)就可以访问它。
MainClassImTesting unitUnderTest = new MainClassImTesting(mockAuthHelper);
Boolean response = unitUnderTest.test();
assertTrue(response);
或者如果您的测试方法是唯一需要AuthHelper的方法,您可以简单地将AuthHelper作为方法参数。
MainClassImTesting unitUnderTest = new MainClassImTesting();
Boolean response = unitUnderTest.test(mockAuthHelper);
assertTrue(response);
我正在尝试测试一种使用hibernate、junit和mocking连接到db的方法 这是我的代码 UserDAO. java UserDAOImpl。Java语言 TestUserDAOImpl 测试用例向db添加了一组用户名和密码,但当我尝试使用返回结果时,它会返回一个空列表。 有人能帮我解决这个问题吗?
我正在尝试模拟静态函数(getBatchId()和sendPost())以获得以下代码: 上述方法的单元测试用例代码:
让我向您展示getCurrentWeatherWithForecastUsecase类actgually是什么样子: } //这很容易,它只需要一个天气存储库,并要求它获取结果。我把它发送回调用者,调用者将显示它。 更新: 以下是故障的整个堆栈跟踪:
问题内容: 我知道关于模拟和测试有很多问题,但是我发现没有任何问题可以完美地帮助我,因此我仍然对理解以下内容有疑问: 如果我弄错了,请纠正我,但据我所知,单元测试用于隔离测试一个特定类的业务逻辑,并且如果有外部需要的任何对象,它们将被模拟。因此,例如,如果我有一个简单城市居民的管理系统,该系统将居民添加到列表中并按姓名返回居民(假设:居民仅包含一些基本个人信息),如下所示: 如果现在我要进行单元测
出于学校目的,我正在创建一个使用股票API的应用程序。 我正在尝试为一种获取过去10年所有股票数据的方法编写一个测试。我不想实际获取所有这些数据,而是想抛出一个异常。 我想测试的方法: 股票时间系列(....)调用可以抛出阿尔法仓位异常。 我这样嘲弄了TimeSeries类: 在我的测试类中,我想模拟这个调用,并返回一个异常而不是实际数据。 无论我多么试图嘲笑这段代码,它永远不会抛出异常。它将始终