这对我来说有点奇怪。我有一个公司存储库
@Repository
public interface CompanyRepository extends GraphRepository<Company> {
Company findByName(String name);
@Query("MATCH (n:Company) WHERE lower(n.name) CONTAINS lower({0}) RETURN n")
List<Company> findByPartialName(String name);
然后我有一个单元测试类来测试这两个方法
public class CompanyRepositoryTest extends Neo4JTestConfig {
@Autowired
private CompanyRepository companyRepository;
@Before
public void setUp() throws Exception {
Company company = new Company();
company.setName("Westpac");
company.setUrl("www.westpac.com.au");
companyRepository.save(company);
Company company2 = new Company();
company2.setName("test Hl");
company2.setUrl("www.test.com.au");
companyRepository.save(company2);
}
@After
public void tearDown() throws Exception {
companyRepository.deleteAll();
}
@Test
public void testFindByName() throws Exception {
Company company = companyRepository.findByName("Westpac");
assertEquals(company.getUrl(), "www.westpac.com.au");
}
@Test
public void testFindByPartialName() throws Exception {
List<Company> companies = companyRepository.findByPartialName("St");
assertEquals(2, companies.size());
List<Company> companies2 = companyRepository.findByPartialName("west");
assertEquals(1, companies2.size());
}
}
那些看起来都很好吗?是的,我想是的。我可以运行每个@Test
方法,没有任何问题。
但是,当我在类级别上运行时,无论第二种测试方法总是失败。
我查看了数据库,第一次运行@Before
,一切都很好,两个Company
用name和url属性保存到neo4j中。但是对于@Before
的第二次运行,neo4j中的所有Company
节点都没有任何属性。这导致第二次@Test
失败。
我正在使用
<spring.data.neo4j.version>4.0.0.RELEASE</spring.data.neo4j.version>
和
<neo4j.ogm.version>1.1.2</neo4j.ogm.version>
任何想法为什么?