我已经创建了一个自定义弹性搜索客户端。我需要在各种功能上部署单元测试。我该怎么做呢?
assertEquals(expectedOutput, actualOutput);
下面是我的客户提供的一个方法。我应该如何在这里部署单元测试?
@Override
public ActionFuture<IndexResponse> index(IndexRequest request)
{
TimerContext indexTimerContext=indexTimer.time();
super.index(request));
indexTimerContext.stop();
}
我该如何着手做这件事呢?
ElasticSearch有自己的测试框架,(断言)教程描述了单元和集成测试!如果您想使用其他框架,可以使用mockito或easymock。在您的情况下,您必须检查方法index(IndexRequest request)
调用indextimer.time()
和indextimercontext.stop()
,因此您必须模拟indextimer
并验证调用。使用Mockito查看Java验证void方法调用n次
编辑:我从未使用过ElasticSearch,但您的单元测试将如下所示
@Test
public void testIndex() {
clientTest = Mockito.spy(new MyClient());
//this is a field, which we mock
IndexTimer indexTimerSpy = Mockito.spy(new IndexTimer());
//TimerContext we mock too
TimerContext timerContextSpy = Mockito.spy(new TimerContext());
//IndexTimer.time returns our timer context
Mockito.doReturn(timerContextSpy).when(indexTimerSpy).time();
//set indexTimer
clientTest.setIndexTimer(indexTimerSpy);
//calls method under test
clientTest.index(null);
//verify calls of methods
Mockito.verify(indexTimerSpy).time();
Mockito.verify(timerContextSpy).stop();
// Prevent/stub logic when calling super.index(request)
//Mockito.doNothing().when((YourSuperclass)clientTest).index();
}
我编写了以下来让Jackson将一个数组的整数序列化为JSON: 此处使用该类: 我想测试序列化程序的行为,并得出以下结论: 但是,不向写入任何内容。我做错了什么?
我是TDD的忠实粉丝,我通常在编写代码之前为我的大学作业编写测试用例。下面是我作业的界面:
我有DaoImpl类: 我的测试是: 测试是成功的,但是当我运行具有覆盖率的junit测试时,它显示方法没有被覆盖,因此我的整体单元测试行覆盖率低于要求。我们能涵盖那部分吗?如果是,我们怎么做?谢了。
最近,我尝试为akka参与者编写一些单元测试,以测试参与者消息流。我在测试中观察到一些奇怪的行为: 下一个 在我的代码中,我有: 基本上,有时(很少)这样的测试失败(在另一个操作系统上),并且抛出processMessage方法的异常(由于业务逻辑导致的IllegalStateException)。
我正在为我的Spring MVC控制器设置单元测试,并试图利用Spring MVC测试框架。对于控制器中的每个endpoint,我希望确保只有具有指定权限的用户才能访问。我的问题是,在使用mockMvc工具解决这个问题时,我使用了一个自定义用户实现,并获得了类强制转换异常。 对于每个请求,我希望它看起来像这样: 我想以某种方式调整上述语句,以指定我的自定义用户主体。请参见下面Spring的用户方法
问题内容: 我目前正在编写Java客户端服务器应用程序。所以我想实现两个库,一个用于客户端,一个用于服务器。客户端服务器通信具有非常严格的协议,我不打算使用JUnit进行测试。 作为构建工具,我使用Maven和Husdon Server进行持续集成。 实际上,我对如何测试这些客户端/服务器库没有什么好主意。 我得到以下方法: 只需编写一个虚拟客户端来测试服务器,然后编写一个虚拟服务器来测试客户端。