我已经使用Spring Initializer、嵌入式Tomcat Thymeleaf模板引擎生成了一个Spring Boot web应用程序,并将其打包为一个可执行的JAR文件。
使用的技术:
Spring引导1.4.2。释放,Spring4.3.4。释放,胸腺2.1.5。释放,Tomcat嵌入8.5.6,Maven 3,Java8
我有一个测试:
@ContextConfiguration(classes={PersistenceConfig.class})
@RunWith(SpringRunner.class)
public class BooksManagerTests {
/**
* The object being tested.
*/
@Autowired
BooksManager booksManager;
@Test
public void testfindDeviceByKey() {
booksManager.findDeviceByKey("C380F");
}
}
@Configuration
public class PersistenceConfig {
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
@Bean
public BooksManager booksManager() {
return new BooksManagerImpl();
}
/**
* Creates an in-memory "rewards" database populated
* with test data for fast testing
*/
@Bean
public DataSource dataSource(){
return
(new EmbeddedDatabaseBuilder())
.addScript("classpath:db/H2.schema.sql")
.addScript("classpath:db/H2.data.sql")
.build();
}
}
@Service("booksManager")
public class BooksManagerImpl implements BooksManager {
private DeviceEventRepository deviceEventRepository;
@Autowired
public void setDeviceEventRepository(DeviceEventRepository deviceEventRepository) {
this.deviceEventRepository = deviceEventRepository;
}
@Override
public List<DeviceEvent> getAllDeviceEvents() {
return deviceEventRepository.getAllDeviceEvents();
}
}
@Repository("deviceEventRepository")
public class JdbcDeviceEventRepository implements DeviceEventRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<DeviceEvent> getAllDeviceEvents() {
String sql = "select * from t_device_event";
return mapDeviceEvents(jdbcTemplate.queryForList(sql));
}
private List<DeviceEvent> mapDeviceEvents(List<Map<String,Object>> deviceEventsMap) {
return null;
}
}
但是我运行测试时遇到了这个错误:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'booksManager': Unsatisfied dependency expressed through method 'setDeviceEventRepository' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.tdk.repository.DeviceEventRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
应用程序在初始化期间仅指定一个配置:
@ContextConfiguration(类={PersistenceConfig.class})
您需要通过指定这样的主程序来启动应用程序,以启用Spring Boot自动配置:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
有关JPA存储库自动配置的详细信息,请参阅JPA存储库自动配置。
已解决将此添加到PersistenceConfig类的问题
@Bean
public DeviceEventRepository deviceEventRepository() {
return new JdbcDeviceEventRepository();
}
org.springframework.beans.factory.unsatisfiedDependencyException:创建名为“com.sonos.arcor.service.AddressServiceTest”的bean时出错:通过字段“service”表示的未满足的依赖项;嵌套异常为org.springframework.beans.factory.noSuchBeanDefin
我的TestNG测试如下: 如果Test1或Test2中的任何一个被传递,我希望我的Test3被执行。TestNG的工作方式似乎总是检查Test1和Test2是否都被传递。有没有办法可以将逻辑AND更改为逻辑OR。我还尝试过指定像这样的依赖方法,但运气不好 我还尝试了依赖组,但这再次检查是否所有相应的测试都在逻辑与中传递。运行上述测试后,我将获得以下输出:
我正在开发一个Spring Boot应用程序,其中我声明了一个组件,如下所示: 我想让它成为一个单例bean(因为默认情况下组件是单例的,所以我没有添加显式声明)。 我在类中添加了一个私有构造函数。 我有一个定义bean的配置类。 我还有应用程序和控制器类。 我的单元测试用例如下所示: 在上面的代码中,如果我运行单元测试,我将得到以下异常。 通过字段“repositoryMaster”表示的未满足
我想知道如何执行一个文件或实体来理解我现在要运行指定的JUnit5案例列表? 我知道JUnit5中的一些类似于测试套件的新功能即将出现,但它们显然现在还没有出现,期望在不久的将来出现可能过于乐观了。我现在已经积累了几个测试,接下来还有几个,必须独立地启动每个测试越来越乏味,随着测试数量的增加,这种情况只会变得更糟。今天我是否可以编写代码来自动一次运行多个测试?这将使我渡过难关,直到即将到来的代码可
我正在开发一个spring启动应用程序并编写一些junit测试。 但我发现,当我运行任何测试时,tomcat也会启动,这使得这些测试非常缓慢,浪费了很多时间。 当我开发一个SpringMvc应用程序时,junit测试可以在不启动tomcat的情况下运行,这节省了很多时间。 所以,我想问它在那里无论如何要运行启动tomcat的springstart测试?
我能够部署一个RESTEasy应用程序,可以很好地使用Weld(这意味着我的CDI可以工作),但我在集成测试中遇到了一些麻烦。我得到这个错误: 在测试时: 日志中的最后一条消息是