Java eclipse中的测试spring注释配置通过,但maven
我使用spring注释配置对autowire bean进行了单元测试。它在eclipse中工作得很好(选择RunAs>JUnit…),但在运行Java eclipse中的测试spring注释配置通过,但maven,java,spring,maven,junit,Java,Spring,Maven,Junit,我使用spring注释配置对autowire bean进行了单元测试。它在eclipse中工作得很好(选择RunAs>JUnit…),但在运行mvn测试时失败(Bean为NULL)。我不知道两者有什么不同。我怎样才能在maven也跑得好呢?谢谢 PasswordTest.java: pom.xml 。。。 朱尼特 朱尼特 3.8.1 测试 ... Maven输出: 运行com.backend.PasswordTest 测试运行:1,失败:1,错误:0,跳过:0,运行时间:0秒Maven管理JA
mvn测试时失败(Bean为NULL)。我不知道两者有什么不同。我怎样才能在maven也跑得好呢?谢谢
PasswordTest.java:
pom.xml
。。。
朱尼特
朱尼特
3.8.1
测试
...
Maven输出:
运行com.backend.PasswordTest
测试运行:1,失败:1,错误:0,跳过:0,运行时间:0秒Maven管理JAR和对象生命周期;就这些
我建议您使用JUnit4.x或更高版本
您有一个@Autowired注释,这表明您希望Spring管理您的依赖项,但您调用new来实例化PasswordEncoder。这两者是相互排斥的。当您调用new时,Spring不会管理这个bean。如果您想让Spring来管理它们,不要调用new。应用程序中的所有对象都需要在Spring的控制下
我还建议您在编写单元测试时不要使用Spring。没有理由产生这种开销,特别是对于像这样简单的测试。Maven管理JAR和对象生命周期;就这些
我建议您使用JUnit4.x或更高版本
您有一个@Autowired注释,这表明您希望Spring管理您的依赖项,但您调用new来实例化PasswordEncoder。这两者是相互排斥的。当您调用new时,Spring不会管理这个bean。如果您想让Spring来管理它们,不要调用new。应用程序中的所有对象都需要在Spring的控制下
我还建议您在编写单元测试时不要使用Spring。没有理由产生这种开销,特别是对于像这样简单的测试。Maven管理JAR和对象生命周期;就这些
我建议您使用JUnit4.x或更高版本
您有一个@Autowired注释,这表明您希望Spring管理您的依赖项,但您调用new来实例化PasswordEncoder。这两者是相互排斥的。当您调用new时,Spring不会管理这个bean。如果您想让Spring来管理它们,不要调用new。应用程序中的所有对象都需要在Spring的控制下
我还建议您在编写单元测试时不要使用Spring。没有理由产生这种开销,特别是对于像这样简单的测试。Maven管理JAR和对象生命周期;就这些
我建议您使用JUnit4.x或更高版本
您有一个@Autowired注释,这表明您希望Spring管理您的依赖项,但您调用new来实例化PasswordEncoder。这两者是相互排斥的。当您调用new时,Spring不会管理这个bean。如果您想让Spring来管理它们,不要调用new。应用程序中的所有对象都需要在Spring的控制下
我还建议您在编写单元测试时不要使用Spring。没有理由产生这种开销,特别是对于像这样简单的测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader=AnnotationConfigContextLoader.class)
public class PasswordTest {
@Configuration
static class ContextConfiguration {
@Bean
public PasswordEncoder passwordEncoder() {
PasswordEncoder passwordEncoder = new org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder();
return passwordEncoder;
}
}
@Autowired(required = true)
private PasswordEncoder encoder;
@Test
public void testPassword() {
String password = encoder.encode("123"); // Line 43 here
System.out.println(password);
assertTrue(password != null && password.length() != 0);
}
}
...
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
...
Running com.backend.PasswordTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0 sec <<< FAILURE!
com.backend.PasswordTest.testPassword() Time elapsed: 0 sec <<< FAILURE!
java.lang.NullPointerException
at com.backend.PasswordTest.testPassword(PasswordTest.java:43)