Printemps JUnit test avec @Autocâblés annotation

Im d'avoir des problèmes avec mon cas de test après avoir introduit @Autocâblés dans l'une des classes sous test.

Mon cas de test ressemble maintenant à ceci:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/applicationContext.xml", "/spring-security.xml"})
public class StudentRepositoryTest extends AbstractDatabaseTestCase {

private StudentRepository studentRepository;
private CompanyRepository companyRepository;
private Student testStudent;
private Company testCompany;

@Before
public void setUp() {
    studentRepository = new StudentRepository();
    studentRepository.setJdbcTemplate(getJdbcTemplate());
    testStudent = Utils.testStudentNoApplication();
}
@Test
....

}

StudentRepository ressemble maintenant à ceci:

@Service
public class StudentRepository extends AbstractRepository<Student> {

...

private PasswordEncoder passwordEncoder;
private MailService mailService;

public StudentRepository() {
    //TODO Auto-generated constructor stub
}

@Autowired 
public StudentRepository(MailService mailService, PasswordEncoder passwordEncoder) {
    this.mailService = mailService;
    this.passwordEncoder = passwordEncoder;
}

Évidemment, ce cas de test pas travailler plus.
Mais quels changements dois-je faire pour le cas de test pour le @Autocâblés annotation d'être ramassé par les cas de test?

EDIT:

Ive maintenant mis à jour ma configuration () (j'ai besoin du mot de passe de l'encodeur pour éviter mot de passe null):

@Before
public void setUp() {
    //studentRepository = new StudentRepository();
    studentRepository = new StudentRepository(mock(MailService.class), ctx.getAutowireCapableBeanFactory().createBean(ShaPasswordEncoder.class));
    studentRepository.setJdbcTemplate(getJdbcTemplate());
    testStudent = Utils.testStudentNoApplication();
}

Mon cas de test est maintenant en cours d'exécution OK, mais mon testsuite se trompe jamais avec une NullPointerException.
Im deviner l'ApplicationContext n'est pas Autocâblés lors de l'exécution de la suite de tests pour une raison quelconque?

Est-ce seulement un problème dans le test? N'Printemps échec en quelque sorte avec une Exception?
Si c'est une unité de test, vous devriez probablement passer maquette MailService et PasswordEncoder cas pour le constructeur de votre StudentRepository. Découvrez Mockito, EasyMock ou de tout autre se moquant de l'API.

OriginalL'auteur Daniel | 2011-12-13