Tag: mockito

mockito ArrayList 问题

我有一个方法,我试图进行unit testing。 此方法将参数作为ArrayList并使用它执行操作。 我试图定义的模拟是: ArrayList mocked = mock(ArrayList.class); 这给出了[未经检查]未经检查的转换“警告。 ArrayList mocked = mock(ArrayList.class); 给我一个错误。 任何人都想关心我做错了什么?

Mockito,JUnit,Hamcrest,Versioning

默认情况下,Hamcrest所需的版本为: JUnit 4.11 Hamcrest 1.3 Mockito核心1.9.5 Hamcrest 1.1 Hamcrest 1.1和1.3之间没有重要的API变化。 目前我的测试用例试图用Hamcrest 1.1运行JUnit 4.11,但我有理由相信这是一个坏主意。 出于类似的原因,我怀疑尝试将Mockito-core 1.9.5与Hamcrest 1.3一起使用也是一个坏主意。 该怎么办? 将Hamcrest 1.1与最新的JUnit和Mockito一起使用 将Hamcrest 1.3与最新的JUnit和Mockito一起使用 尝试修补Mockito-core 1.9.5以使用Hamcrest 1.3 我此刻没有的时间 使用JUnit 4.10 其他? 更新2015-06-12: Mockito 1.10.19和2.0.13-beta仍然使用Hamcrest 1.1

你如何模拟JavaFX工具包初始化?

[序言:道歉,这里有很多代码,其中一些代码可能与此问题无关,而某些代码对于理解问题可能缺失; 请评论,我会相应地编辑问题。] 环境:Ubuntu 14.10 x86_64; Oracle JDK 1.8u25。 unit testing库是TestNG,版本6.8.13; Mockito是版本1.10.17。 在我的GUI应用程序中,JavaFX称之为“控制器”的东西是非常被动的,因为这个“控制器”(我称之为“显示器”)真正做的唯一事情就是发送事件。 现在,当收到需要GUI更新的事件时,它是另一个类,我称之为视图,它负责更新GUI。 简而言之: 显示 – >演示者 – >视图 – >显示 我有两个unit testing: 显示 – >主持人; 主持人 – >查看。 所以,我在这方面已经被覆盖了(我可以改变显示器的优势,这就是我这样做的原因)。 但现在我尝试测试“视图 – >显示”部分; 我是SOL。 作为说明,这里是视图类: @NonFinalForTesting public class JavafxTreeTabView extends JavafxView implements TreeTabView { private final BackgroundTaskRunner taskRunner; public JavafxTreeTabView(final BackgroundTaskRunner taskRunner) throws IOException { […]

看起来正确的doThrow中的Mockitoexception

我正在尝试模拟一个方法,看看我是否正确处理exception。 这是我得到的。 接口: interface SampleManager { void deleteVariome(String specimenId, String analysisId) throws Exception; // … } unit testing: // … SampleManger sampleManager = mock(SampleManager.class); // below is line 753 doThrow(Exception.class).when(sampleManager).deleteVariome(sample1.getId(), analysisId); 结果: org.mockito.exceptions.misusing.UnfinishedStubbingException: Unfinished stubbing detected here: -> at …server.ArchiveManagerImplUTest.deleteVariomeFails(ArchiveManagerImplUTest.java:753) Eg thenReturn() may be missing. Examples of correct stubbing: when(mock.isOk()).thenReturn(true); when(mock.isOk()).thenThrow(exception); doThrow(exception).when(mock).someVoidMethod(); <– this looks […]

如何使用Mockito显示模拟上的所有调用

我有一个失败的unit testing,我不确定为什么。 我希望能够看到在被测系统中发生的模拟上的所有调用。 这不是我想要的所有测试的行为,只是为了我需要快速调整以便能够弄清楚什么是错误的测试。 但是,它看起来有点像黑客。 是否可以在Mockito中本地执行此操作,而无需使用Thread.currentThread().getStackTrace() ? 这不是首选,因为堆栈跟踪包括Mockito内部使用的所有其他调用。

如何在不运行方法的情况下模拟方法调用和返回值?

考虑以下方法: public boolean isACertainValue() { if(context.getValueA() != null && context.getValueA().toBoolean() == true) { if(context.getType() != null && context.getType() == ContextType.certainType) { return true; } } return false; } 我没有写这个代码,它是丑陋的,它完全过于复杂,但我必须使用它。 现在我想测试依赖于对此方法的调用的方法。 我以为我可以通过以下方式处理: Mockito.when(spy.isACertainValue()).thenReturn(true); 因为那是我要测试的情况。 但它不起作用,因为它仍然调用方法体:/ 我得到了nullpointers,或者说我得到了一些东西 misusing.WrongTypeOfReturnValue; getValueA()不能返回Boolean。 getValueA()应该返回ValueA 所以我尝试(作为一种解决方法)来做: Mockito.when(contextMock.getValueA()).thenReturn(new ValueA()); 和Mockito.when(contextMock.getType()).thenReturn(ContextType.certainType); 但后来我得到一个我似乎无法调试的nullpointer。 那么,在这种情况下如何正确完成?

存根与mockito之间的区别

我是mockito的新手。 需要知道存根和何时的区别 1. stub(cpproxy.getBinList()).toReturn(gettestbins()); 2. when(cpproxy.getBinList()).thenReturn(gettestbins()); 这两者之间有什么区别?

如何模拟影响对象的void返回方法

我正在为我的应用程序编写unit testing,我想知道Mockito框架是否有可能影响传递给返回void模拟类的方法的对象。 例如,调用一个模拟的validation类,该类包含一个返回void但通过作为参数传入的对象跟踪各种更改和元数据的方法。 。 public GetCartItemsOutput getCartItems(GetCartItemsInput getCartItemsInput) { CartItemsFilter cartItemsFilter = new CartItemsFilter(); validator.validateCartItemsInput(getCartItemsInput, cartItemsFilter); … 我为我的其他测试模拟了validation器类,但对于这个我需要模拟对cartItemsFilter对象的更改,我不知道该怎么做。

Mockito:嘲弄“Blackbox”依赖

所以我被要求为我们的开发团队阅读模拟和BDD,并玩嘲笑,以便改进我们现有的一些unit testing(作为实验)。 我最终选择与Mockito一起出于多种原因(有些原因超出我的控制范围),但是因为它支持对模拟不适合的实例进行存根和模拟。 我整天都在学习Mockito,嘲笑(一般)和BDD。 现在我准备深入挖掘并开始增强我们的unit testing。 所以我们有一个名为WebAdaptor的类,它有一个run()方法: public class WebAdaptor { private Subscriber subscriber; public void run() { subscriber = new Subscriber(); subscriber.init(); } } 请注意:我没有办法修改此代码(出于此问题范围之外的原因!)。 因此,我无法为Subscriber添加setter方法,因此可以将其视为WebAdaptor内部无法访问的“黑WebAdaptor 。 我想编写一个包含Mockito模拟的unit testing,并使用该模拟来verify执行WebAdaptor::run()会导致调用Subscriber::init() 。 所以这就是我到目前为止(在WebAdaptorUnitTest ): @Test public void runShouldInvokeSubscriberInit() { // Given Subscriber mockSubscriber = mock(Subscriber.class); WebAdaptor adaptor = new WebAdaptor(); // When adaptor.run(); // Then verify(mockSubscriber).init(); […]

Mockito thenReturn返回相同的实例

我在Mockito有这个: when(mockedMergeContext.createNewEntityOfType(IService.class)).thenReturn(new ServiceMock()); createNewEntityOfType方法应始终返回一个新的ServiceMock实例,但它返回相同引用的两倍。 为什么thenReturn方法不返回新的ServiceMock ?