Questions tagged «mockito»

Mockito是Java的模拟框架。它受到EasyMock的启发,但旨在进一步简化模拟存根,验证和工具。


6
模拟系统类时出现Mockito + PowerMock LinkageError
我有这样的代码片段: @RunWith(PowerMockRunner.class) @PrepareForTest({Thread.class}) public class AllMeasuresDataTest { @Before public void setUp() throws Exception { } @Test public void testGetMeasures() { AllMeasuresData measure = new AllMeasuresData(); assertEquals(measure.getMeasures(), null); HashMap<String, Measure> map = new HashMap<String, Measure>(); measure.setMeasures(map); assertEquals(measure.getMeasures(), map); measure.setMeasures(null); assertEquals(measure.getMeasures(), null); } @Test public void testAllMeasuresData() throws IOException { ClassLoader loader …

3
如何使用ArgumentCaptor进行存根?
在Mockito 文档和javadocs中,它说 建议将ArgumentCaptor用于验证,但不能用于存根。 但我不明白如何将ArgumentCaptor用于存根。有人可以解释上面的陈述并显示ArgumentCaptor如何用于存根或提供显示其完成方式的链接吗?

5
Mockito匹配任何类参数
有没有办法匹配以下示例例程的任何类参数? class A { public B method(Class<? extends A> a) {} } 无论传递到哪个类,如何始终返回a ?以下尝试仅适用于匹配的特定情况。new B()methodA A a = new A(); B b = new B(); when(a.method(eq(A.class))).thenReturn(b); 编辑:一种解决方案是 (Class<?>) any(Class.class)

9
如何在Mockito中正确匹配varargs
我一直在尝试使用Mockito模拟具有vararg参数的方法: interface A { B b(int x, int y, C... c); } A a = mock(A.class); B b = mock(B.class); when(a.b(anyInt(), anyInt(), any(C[].class))).thenReturn(b); assertEquals(b, a.b(1, 2)); 这不起作用,但是如果我改为这样做: when(a.b(anyInt(), anyInt())).thenReturn(b); assertEquals(b, a.b(1, 2)); 尽管我在对方法进行存根时已经完全省略了varargs参数,但这仍然有效。 有什么线索吗?

2
在Mockito中检测到未完成的存根
运行测试时出现以下异常。我正在使用Mockito进行嘲笑。Mockito库提到的提示无济于事。 org.mockito.exceptions.misusing.UnfinishedStubbingException: Unfinished stubbing detected here: -> at com.a.b.DomainTestFactory.myTest(DomainTestFactory.java:355) E.g. thenReturn() may be missing. Examples of correct stubbing: when(mock.isOk()).thenReturn(true); when(mock.isOk()).thenThrow(exception); doThrow(exception).when(mock).someVoidMethod(); Hints: 1. missing thenReturn() 2. you are trying to stub a final method, you naughty developer! at a.b.DomainTestFactory.myTest(DomainTestFactory.java:276) .......... 来自的测试代码DomainTestFactory。当我运行以下测试时,我看到了异常。 @Test public myTest(){ MyMainModel mainModel = Mockito.mock(MyMainModel.class); Mockito.when(mainModel.getList()).thenReturn(getSomeList()); // …
150 java  mocking  mockito 

9
根据输入参数模拟python函数
我们已经将Mock用于python已有一段时间了。 现在,我们要模拟一个函数 def foo(self, my_param): #do something here, assign something to my_result return my_result 通常,模拟此方法的方式是(假设foo是对象的一部分) self.foo = MagicMock(return_value="mocked!") 即使我多次调用foo(),我也可以使用 self.foo = MagicMock(side_effect=["mocked once", "mocked twice!"]) 现在,我面临一种情况,当输入参数具有特定值时,我想返回一个固定值。因此,如果说“ my_param”等于“ something”,那么我想返回“ my_cool_mock” 这似乎可以在python的嘲笑上使用 when(dummy).foo("something").thenReturn("my_cool_mock") 我一直在寻找如何通过Mock实现相同的目标而没有成功? 有任何想法吗?


4
Mockito的argumentsCaptor示例
任何人都可以给我提供一个示例,说明如何使用org.mockito.ArgumentCaptor该类以及该类与Mockito附带的简单匹配器有何不同。 我阅读了提供的Mockito文档,但这些文档没有清楚说明,没有一个能够清晰地解释它。

5
Mockito:InvalidUseOfMatchersException
我有一个执行DNS检查的命令行工具。如果DNS检查成功,则该命令将继续执行其他任务。我正在尝试使用Mockito编写单元测试。这是我的代码: public class Command() { // .... void runCommand() { // .. dnsCheck(hostname, new InetAddressFactory()); // .. // do other stuff after dnsCheck } void dnsCheck(String hostname, InetAddressFactory factory) { // calls to verify hostname } } 我正在使用InetAddressFactory模拟类的静态实现InetAddress。这是工厂代码: public class InetAddressFactory { public InetAddress getByName(String host) throws UnknownHostException { return …

1
Java使用Mockito验证void方法调用n次
我试图验证在DAO中是否正在调用(void)方法-我正在使用提交点,该发送点发送直到该点的结果列表,重置列表并继续。假设我在列表中有4件事,并且我的提交点为1,我希望“发送”方法被调用4次。我可以通过编写来验证该方法是否被调用过一次 Mockito.verify(mock).send() 它通过了..但是我想验证它被调用的次数。我认为 Mockito.verify(mock.send(), times(4)) 就足够了,但是它说参数对于验证不正确。 顺便说一句,如果我更改 Mockito.verify(mock).send()为 Mockito.verify(mock.send())或 Mockito.verify((mock).send())得到相同的错误。有这个想法吗?

5
使用Mockito时,嘲笑和间谍有什么区别?
使用Mockito间谍的用例是什么? 在我看来,每个间谍用例都可以使用callRealMethod进行模拟处理。 我可以看到的一个区别是,如果您希望大多数方法调用都是真实的,则可以节省一些代码行以使用模拟与间谍。是这样还是我错过了更大的前景?
137 java  testing  mocking  mockito 


8
使用Mockito模拟类的成员变量
我是开发的新手,尤其是单元测试的新手。我想我的要求很简单,但是我很想知道其他人对此的想法。 假设我有两个这样的类- public class First { Second second ; public First(){ second = new Second(); } public String doSecond(){ return second.doSecond(); } } class Second { public String doSecond(){ return "Do Something"; } } 假设我正在编写单元测试到测试First.doSecond()方法。但是,假设我想像这样模拟Second.doSecond()课程。我正在使用Mockito执行此操作。 public void testFirst(){ Second sec = mock(Second.class); when(sec.doSecond()).thenReturn("Stubbed Second"); First first = new First(); assertEquals("Stubbed …
136 java  mocking  mockito 

5
Mockito:存根返回带界通配符的类型的存根方法
考虑以下代码: public class DummyClass { public List<? extends Number> dummyMethod() { return new ArrayList<Integer>(); } } public class DummyClassTest { public void testMockitoWithGenerics() { DummyClass dummyClass = Mockito.mock(DummyClass.class); List<? extends Number> someList = new ArrayList<Integer>(); Mockito.when(dummyClass.dummyMethod()).thenReturn(someList); //Compiler complains about this } } 编译器抱怨该行试图对行为进行存根dummyMethod()。关于如何使用存根方法返回带界通配符的类型的任何指针?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.