заглушенное значение не возвращается, когда я издеваюсь над классом - PullRequest
0 голосов
/ 05 мая 2020

Я издеваюсь над классом и использую заглушку для одного из методов, чтобы вернуть желаемое значение, но поскольку мне нужно передать значение .class, фиктивные данные не возвращаются. приветствуются любые идеи.

public class Generator{

   public int getSomething(){
      return 1;
   }
 }

public class Utility{

 public void generate(java.lang.Class<?> class){

  }

 }

@RunWith(SpringRunner.class)
public class TestClass extends Utility{

 @Test
 public void test()

 Generator gen = Mockito.spy(Generator.class)
 Mockito.when(gen.getSomething()).thenReturn(4);

  Int x = generate(gen.getClass())
 // in here 1 is being returned instead of 4
}

}

1 Ответ

0 голосов
/ 05 мая 2020

для объекта-шпиона, который отличается от фиктивного объекта

попробуйте

Mockito.doReturn(4).when(gen).getSomething();


код ниже работает для меня отлично

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
public class TestClass {
    @Test
     public void test() {

     Generator gen = Mockito.spy(Generator.class);

     Mockito.doReturn(4).when(gen).getSomething();
     assertEquals(4, gen.getSomething());
    }
}

class Generator{

       public int getSomething(){
          return 1;
       }
     } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...