如何模拟返回已强制转换的模拟对象的方法。
public void anyMethod() {
// code omitted
( (SomeClass) getApplicationContext().getBean("SomeClass") ).someMethod(anArgument);
// ...
}
试验方法。
@Test
public void testAnyMethod() {
// ...
SomeClass mockSomeClass = mock(SomeClass.class);
when(mockSomeClass.someMethod(anArgument)).thenReturn(someResult);
ApplicationContext mockApplicationContext = mock(ApplicationContext.class);
when(mockApplicationContext.getBean("SomeClass")).thenReturn(mockSomeClass);
PowerMockito.doReturn(mockApplicationContext).when(GetContext.class, "getApplicationContext");
// ...
}
如果稍微更改方法实现以使用类型安全方法:
public void anyMethod() {
// code omitted
getApplicationContext().getBean("SomeClass", SomeClass.class).someMethod(anArgument);
// ...
}
然后您的测试类只会稍微更改为:
@Test
public void testAnyMethod() {
// ...
SomeClass mockSomeClass = mock(SomeClass.class);
when(mockSomeClass).someMethod(anArgument).thenReturn(someResult);
// The problem is that .getBean("SomeClass") returns Object.class which is then cast
// to SomeClass in anyMethod. If I return an Object then someMethod(anArgument) dosent exist
ApplicationContext mockApplicationContext = mock(ApplicationContext.class);
when(mockApplicationContext.getBean("SomeClass", SomeClass.class)).thenReturn(mockSomeClass);
// ...
}
调试时,在带有的行中弹出一个NullPointerException,类为。
问题内容: 我正在为我的应用程序编写单元测试,我想知道Mockito框架是否有可能影响传递到返回无效类的方法中的对象。例如,调用一个包含方法的模拟验证类,该方法返回void,但通过作为参数传入的对象来跟踪各种更改和元数据。。 我为其他测试模拟了验证器类,但是对于这个测试,我需要模拟对不知道怎么做的cartItemsFilter对象的更改。 问题答案: 答案是肯定的,您可以,并且根据测试的需要,基本
所以我想做一些事情 但我得到了空异常
我有一个类。并且我已经编写了一个类的单元测试方法的类。我的代码如下:- 在我的单元测试课上,我编写了以下方法。 当我执行测试类,我得到错误。这是因为在类中,在方法的第8行中,学生机构映射字段为null。这只发生在模拟对象上。如何获得模拟对象的自动生成字段?
问题内容: 我想从包含2个静态方法m1和m2的类中模拟静态方法m1。我希望方法m1返回一个对象。 我尝试了以下 1) 这将同时调用m1和m2,它们具有不同的返回类型,因此会给出返回类型不匹配错误。 2) 但是,执行m1时不会调用此方法。 3) 给出了我不能从http://code.google.com/p/powermock/wiki/MockitoUsage获得的,无法提供模拟部分的编译器错误。
我想从一个包含两个静态方法m1和M2的类中模拟一个静态方法m1。并且我希望方法m1返回一个对象。 我尝试了以下操作 2)但在执行m1时不调用它。