Questions tagged «mockito»

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

6
使用Mockito模拟具有通用参数的类
有没有一种使用通用参数模拟类的干净方法?说我必须模拟一个类Foo<T>,我需要将该类传递给期望使用的方法Foo<Bar>。我可以很容易地做到以下几点: Foo mockFoo = mock(Foo.class); when(mockFoo.getValue).thenReturn(new Bar()); 假定getValue()返回通用类型T。但是,当我稍后将其传递给期望的方法时,将会有小猫Foo<Bar>。铸造是这样做的唯一方法吗?
280 java  generics  mockito 

5
为什么Mockito不模拟静态方法?
我在这里阅读了一些有关静态方法的主题,并且我认为我理解滥用/过度使用静态方法可能导致的问题。但是我并没有真正理解为什么很难模拟静态方法的原因。 我知道其他模拟框架(例如PowerMock)可以做到这一点,但为什么Mockito不能? 我读了这篇文章,但作者似乎在宗教上反对这个词static,也许这是我的理解不周。 一个简单的解释/链接会很好。
267 java  methods  static  mockito 

11
使用Mockito验证对象属性值
我有一个方法调用,我想用模拟嘲笑。首先,我创建并注入了将在其上调用该方法的对象的实例。我的目的是验证方法调用中的对象之一。 调用模拟方法时,mockito有没有办法让您断言或验证对象及其属性? 例 Mockito.verify(mockedObject) .someMethodOnMockedObject( Mockito.<SomeObjectAsArgument>anyObject()) anyObject()我不想检查参数对象是否包含某些特定字段,而不是这样做 Mockito.verify(mockedObject) .someMethodOnMockedObject( Mockito.<SomeObjectAsArgument>**compareWithThisObject()**)
264 java  mocking  mockito 

8
Mockito匹配器和原语数组
使用Mockito,我想在其参数列表中verify()使用方法调用byte[],但是我没有找到如何编写该方法的方法。 myMethod( byte[] ) 我只想要像anyByteArray()Mockito那样的东西?
226 java  mockito 

9
Mockito。验证方法参数
我已经对此进行了谷歌搜索,但是没有发现任何相关信息。我有这样的事情: Object obj = getObject(); Mockeable mock= Mockito.mock(Mockeable.class); Mockito.when(mock.mymethod(obj )).thenReturn(null); Testeable testableObj = new Testeable(); testableObj.setMockeable(mock); command.runtestmethod(); 现在,我要验证的mymethod(Object o)是内部runtestmethod()调用了,是通过Object调用的o,而不是其他对象。但是无论我进行哪种验证,我都会始终通过测试,例如: Mockito.verify(mock.mymethod(Mockito.eq(obj))); 要么 Mockito.verify(mock.mymethod(Mockito.eq(null))); 要么 Mockito.verify(mock.mymethod(Mockito.eq("something_else"))); 我总是通过考试。我如何完成该验证(如果可能)? 谢谢。

24
如何使用Mockito模拟最终课程
我有最后一堂课,像这样: public final class RainOnTrees{ public void startRain(){ // some code here } } 我正在像这样的其他班级使用这个班级: public class Seasons{ RainOnTrees rain = new RainOnTrees(); public void findSeasonAndRain(){ rain.startRain(); } } 在我的JUnit测试类中,Seasons.java我想模拟RainOnTrees该类。我该如何使用Mockito做到这一点?
218 java  junit  mockito 


4
Mockito验证方法调用的顺序/顺序
有没有一种方法可以验证在Mockito中是否曾经methodOne调用过methodTwoa? public class ServiceClassA { public void methodOne(){} } public class ServiceClassB { public void methodTwo(){} } public class TestClass { public void method(){ ServiceClassA serviceA = new ServiceClassA(); ServiceClassB serviceB = new ServiceClassB(); serviceA.methodOne(); serviceB.methodTwo(); } }

5
如何告诉Mockito模拟对象在下次调用时返回不同的内容?
因此,我正在像这样在类级别上将模拟对象创建为静态变量...在一个测试中,我想Foo.someMethod()返回某个值,而在另一个测试中,我希望它返回一个不同的值。我遇到的问题是,似乎我需要重建模拟才能使其正常工作。我想避免重建模拟,只在每个测试中使用相同的对象。 class TestClass { private static Foo mockFoo; @BeforeClass public static void setUp() { mockFoo = mock(Foo.class); } @Test public void test1() { when(mockFoo.someMethod()).thenReturn(0); TestObject testObj = new TestObject(mockFoo); testObj.bar(); // calls mockFoo.someMethod(), receiving 0 as the value } @Test public void test2() { when(mockFoo.someMethod()).thenReturn(1); TestObject testObj = new TestObject(mockFoo); …

6
何时使用Mockito.verify()?
我为3个目的编写jUnit测试用例: 为确保我的代码在所有(或大部分)输入组合/值下满足所有必需的功能。 为了确保可以更改实现,并依靠JUnit测试用例告诉我,我的所有功能仍然令人满意。 作为所有用例的文档,我的代码将处理这些代码,并充当重构的规范-如果需要重写代码。(重构代码,如果我的jUnit测试失败-您可能错过了一些用例)。 我不明白为什么或何时Mockito.verify()使用。当我看到verify()被调用时,它告诉我我的jUnit正在意识到实现。(即使我的功能不受影响,更改我的实现也会破坏jUnits)。 我在找: 正确使用的准则应该是什么Mockito.verify()? jUnits知道或紧密关联被测类的实现在本质上是正确的吗?

5
Mockito-doReturn()和when()之间的区别
我目前正在使用Mockito在Spring MVC应用程序中模拟我的服务层对象,在该应用程序中我想测试我的Controller方法。但是,当我阅读Mockito的细节时,我发现这些方法doReturn(...).when(...)等效于when(...).thenReturn(...)。所以,我的问题是,拥有两种做同一件事的方法有什么意义?doReturn(...).when(...)和之间的细微差别是when(...).thenReturn(...)什么? 任何帮助,将不胜感激。

4
使用Mockito的通用“ any()”方法
我有一个接口,该方法需要一个数组Foo: public interface IBar { void doStuff(Foo[] arr); } 我正在使用Mockito来模拟此接口,我想断言该接口已doStuff()被调用,但是我不想验证传递了什么参数-“无关”。 如何使用any()通用方法而不是编写以下代码anyObject()? IBar bar = mock(IBar.class); ... verify(bar).doStuff((Foo[]) anyObject());

5
Mockito:将真实对象注入私有@Autowired字段
我正在使用Mockito @Mock和@InjectMocks批注将依赖项注入到使用Spring批注的私有字段中@Autowired: @RunWith(MockitoJUnitRunner.class) public class DemoTest { @Mock private SomeService service; @InjectMocks private Demo demo; /* ... */ } 和 public class Demo { @Autowired private SomeService service; /* ... */ } 现在,我也想将真实对象注入私有@Autowired字段(不使用setter)。这是否可能,或者该机制仅限于注入Mocks?
190 java  spring  mockito 

5
使用Mockito从模拟中抛出检查的异常
我正在尝试让我的模拟对象之一在调用特定方法时引发已检查的异常。我正在尝试以下。 @Test(expectedExceptions = SomeException.class) public void throwCheckedException() { List<String> list = mock(List.class); when(list.get(0)).thenThrow(new SomeException()); String test = list.get(0); } public class SomeException extends Exception { } 但是,这会产生以下错误。 org.testng.TestException: Expected exception com.testing.MockitoCheckedExceptions$SomeException but got org.mockito.exceptions.base.MockitoException: Checked exception is invalid for this method! Invalid: com.testing.MockitoCheckedExceptions$SomeException 查看Mockito文档,他们仅使用RuntimeException,是否无法使用Mockito从模拟对象引发已检查的异常?
173 java  mocking  mockito 

7
Mockito.any()通过泛型接口
是否可以通过泛型传递接口的类型? 界面: public interface AsyncCallback<T> 在我的测试方法中: Mockito.any(AsyncCallback.class) 把<ResponseX>后面或.class没有工作。
170 java  generics  mockito 

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.