2015-05-07 4 views
2

Я использую пружину для автозаводных бобов в своем проекте, а также использую mockito для теста.Моккито с пружиной в многослойной структуре зависимости

@Service 
public class A { 
    someMethod() { } 
} 

@Service 
public class B { 
    @Autowired 
    A a; 

    someMethod() { 
     a.someMethod(); 
    } 
} 

@Service 
public class C { 
    @Autowired 
    B b; 

    someMethod() { 
     b.someMethod(); 
    } 
} 

Теперь я хочу протестировать класс C с настоящим классом Autwired B и макет класса A. Как я могу это сделать?

Большое спасибо.

ответ

1

Используйте инъекцию конструктора вместо инъекции поля, и вы можете просто вводить mocks в качестве аргументов конструктора, как и для любого другого объекта.

0

Фактически, эта конструкция, испытание C, но нуждающееся в A в B; не хороший способ для unittest. Unittest предназначен для тестирования только одного блока. Наконец-то я переместил A в B, возможно, это лучший способ для unittest.

Смежные вопросы