我有一个Spring存储库,它有这样一个方法:
Long deleteByStatusAndTriggeredBefore(String status, Timestamp triggered);
在Junit测试中测试此方法时,它确实按预期工作。
@DataJpaTest
public class AlertRepositoryTest {
@Autowired
@Qualifier("alertRepository")
private AlertRepository underTest;
@AfterEach
void tearDown(){
underTest.deleteAll();
}
@Test
void testUpdateAndDelete() {
Timestamp triggered = java.sql.Timestamp.valueOf("2007-09-23 10:10:10.0");
Timestamp fixed = java.sql.Timestamp.valueOf("2012-09-23 10:10:10.0");
Alert alert1 = new Alert("FIXED", "event1", 0L, 0L, triggered, fixed, "domain1", "service1", "metric1", "context1", 1L, 1L);
Alert alert2 = new Alert("FIXED", "event2", 0L, 0L, triggered, fixed, "domain2", "service2", "metric2", "context2", 1L, 1L);
underTest.save(alert1);
underTest.save(alert2);
// some other assertions ...
// As expected, the elements get deleted and the database is empty
Timestamp deletion = java.sql.Timestamp.valueOf("2019-09-23 10:10:10.0");
underTest.deleteByStatusAndTriggeredBefore("FIXED", deletion);
Page<Alert> alertReturned = underTest.findByStatus("FIXED", Pageable.unpaged());
assertThat(alertReturned.getContent().size()).isEqualTo(0);
}
}
然而,删除在我们的生产数据库上不起作用。为了让它在生产数据库上工作,我们必须在存储库中的方法中添加@Transactional注释
@Transactional
Long deleteByStatusAndTriggeredBefore(String status, Timestamp triggered);
这是一个问题,因为测试可行,但在生产中不起作用。当缺少事务注释时,是否可能使此测试失败?测试配置为在内存H2数据库上运行。
它在测试中工作的原因是@DataJpaTest
注释包含@Transactional
元注释。因此整个测试方法都覆盖了一个事务,这允许AlertRepository
方法在没有错误的情况下运行。
如果要使其在测试中失败,可以重写事务注释,如下所示:
DataJpaTest
@Transactional(propagation = Propagation.NOT_SUPPORTED)
class MyNonTransactionalTests {
// ...
}
有关此行为的更多信息,请参阅文档。
我正在为Junit编写测试,以测试我编写的删除函数: 此方法适用于同时具有前后节点的双链接列表。 问题是:我们的大学将针对我们编写的测试运行错误代码,以确定我们是否编写了足够的测试来捕获错误代码和异常。 我知道他们将运行的两个测试,但不知道错误的含义。 > 失败:缺少逻辑 故障:缺少NextNodeRepairLogic 这是我没有考虑的两个测试,因为我无法理解这些错误的含义。有人知道这些错误可能
首先,我是Spring Hibernate开发的新手。遵循了很多教程书籍,我创建了一个主要基于Spring、Hibernate标准的示例应用程序,我已经开始为Repository(DAO)方法编写一些测试用例,即查找、查找、保存、删除。 当我执行测试类时,这真是太疯狂了,并不是所有的测试用例都能正确地为ex执行。尤其是find 当我完全执行以上所有测试用例时 甚至更新测试用例的行为也很奇怪,因为在
在我的项目中有几个实体具有相同的属性(对于示例'name'),所以,有可能创建一个存储库,其中使用自定义的select(实体)?因此,我从JpaRepository扩展了我的存储库,我扩展了MyCustomJpaRepository,MyCustomJpaRepository也扩展了JpaRepository,使其能够从JpaRepository授予基本功能? TKS
我的应用程序无法启动,因为spring看不到bean。 我试图运行mu应用程序,并添加创建的用户到数据库。我不知道如何创建丢失的bean。我发现界面上方必须有注释@repository,所以我放置了它,但它仍然不起作用。 我想运行我的应用程序,并添加用户到数据库。
问题内容: 问题: 即使我从Maven存储库中复制了依赖项,也不会下载。 当我将鼠标悬停在Eclipse中的依赖项上时,它会发出警告:“ ”。 当我尝试或警告时:“ ”。 尝试过: 将jar下载到文件夹中,然后在编辑器中刷新。 当我或它似乎忽略它。 运行中。 与或相同。 深入: 该依赖关系 存在 于Maven存储库中(版本也是正确的)。 使用Eclipse EE Neon 4.6.3,Apache