Java注解@Mock和@InjectMocks及@Mock和@Spy之间的区别
1.@Mock和@InjectMocks的区别
@Mock为您需要的类创建一个模拟实现。
@InjectMocks创建类的一个实例,并将用@Mock或@Spy注释创建的模拟注入到这个实例中。
注意,必须使用@RunWith(MockitoJUnitRunner.class)
或Mockito.initMocks(this)
初始化这些模拟并注入它们。
下面给出一个使用示例:
假设我们有Game和Player两个Class。
class Game {
private Player player;
public Game(Player player) {
this.player = player;
}
public String attack() {
return"Player attack with:" + player.getWeapon();
}
}
class Player {
private String weapon;
public Player(String weapon)