简体   繁体   English

类的方法被另一个类扩展

[英]Mock method on class extended by another class

I have: 我有:

public class A extends B {
    public ObjectC methodToTest() {
        return getSomething(); 
    }
}

/* this class is in other project and compiles in project I want test */
public class B {
    public ObjectC getSomething() {
       //some stuff calling external WS
    }
}

and on test: 并经过测试:

@RunWith(MockitoJUnitRunner.class)
public class ATest {

   @Mock
   B bMock;

   @InjectMocks
   A classTotest;

   @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
    }

   @Test
   public void getMethodToTestShouldReturnObjectC() {
        Mockito.when(bMock.getSomething()).thenReturn(new ObjectC());
        assertEquals(classTotest.methodToTest().getClass, ObjectC.class);
   }
}

But when I run test Mockito is calling B (and it fails because calls a ws...) 但是,当我运行测试时,Mockito正在调用B(并且失败是因为调用了ws ...)

I read a lot of stuff about this but I can't solve it. 我读了很多有关此的内容,但我无法解决。

¿How Can I mock getSomething() to return ObjectC? ¿如何模拟getSomething()返回ObjectC?

Mockito.when(bMock.getSomething()).thenReturn(new ObjectC());

This method changes only bMock . 此方法仅更改bMock It doesn't change any other class B (or A ) instances. 它不会更改任何其他B类(或A )实例。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM