sdn 4.0单元测试中的有线行为

时间:2015-12-01 00:31:28

标签: unit-testing neo4j spring-data-neo4j spring-data-neo4j-4

这对我来说有点奇怪。我有一个公司存储库

@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>

任何想法为什么?

0 个答案:

没有答案