spring3注释与main方法

Tec*_*ind 2 java junit spring

我有以下课程:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/com/home/app/Home-ctx.xml"})
public class LoginDetailsTest  {

    public static void main(String[] args) {
        new LoginDetailsTest().testLoginDetails();
    }
    @Inject
    @Named(HomeConstants.loginDetailsService)
    private LoginDetailsService loginDetailsService;
    private List<UserLogin> loginDetails;

    @Test
    public void testLoginDetails() {
        UserLogin login = new UserLogin();
        login.setLoginName("test");
        login.setLoginPassword("test123");
        loginDetails = loginDetailsService.loginDetails(login);
        for (UserLogin loginDet : loginDetails) {
            System.out.println(loginDet.getLoginName());
            System.out.println(loginDet.getLoginPassword());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在代码上运行junit test,那么它会给出预期的结果.如果我作为Java应用程序运行,即main方法,则它为loginDetailsS​​ervice .loginDetails(login)提供空指针异常 .怎么可以作为主要方法运行没有错误?

Bri*_*ent 5

当你"运行代码作为junit test"来引导你的应用程序上下文和依赖注入时,你仍然需要做JUnit所做的事情:

public static void main(String[] args) {
    org.junit.runner.JUnitCore.run(LoginDetailsTest.class);
}
Run Code Online (Sandbox Code Playgroud)