Springjunit测试(带沙发底座)

rta7y2nd  于 2022-11-11  发布在  Spring
关注(0)|答案(2)|浏览(129)

我有一些服务,应该从沙发基地获得文件。
服务项目:

public List<Doc> findByFirstField( String firstFieldValue )
    {
        Query query = new Query();
        query.setKey( ComplexKey.of( firstFieldValue ) );
        List<Doc> docs = (List<Doc>) docRepository.findFirstField( query );
        return docs;
    }

    public List<Doc> findBySecondField( String secondFieldValue )
    {
        Query query = new Query();
        query.setKey( ComplexKey.of( secondFieldValue ) );
        List<Doc> docs = (List<Doc>) docRepository.findSecondField( query );
        return docs;
    }

此外,我有DocRepository接口与必要的方法和视图上的couchbase服务器。当我运行我的应用程序和调用服务,其工作正常,但我需要测试此服务。
测试项目:

@RunWith( SpringJUnit4ClassRunner.class )
@TestExecutionListeners( listeners = { DependencyInjectionTestExecutionListener.class } )
@ContextConfiguration( classes = {CouchbaseConfig.class, DocServiceImplTest.class, DocServiceImpl.class } )
@Configuration

    @Before
    public void CreateDoc()
        throws InterruptedException
    {
        HashMap<String, String> docInfo = new HashMap<String, String>();
        docInfo.put( "docId", "testDoc" );
        docInfo.put( "field1", "value1" );
        docInfo.put( "field2", "value2" );
        docService.saveDoc( docInfo );
    }

    @After
    public  void deleteTestsDoc()
    {
        docService.deleteDoc( "testDoc" );
    }

    @Test
    public void testFindByField1()
    {
        Doc doc = docService.findByFirstField( "value1" );
        assertEquals( "value1", doc.getFirstField() );
    }

    @Test
    public void testFindByField2()
    {
        Doc doc = docService.findBySecondField( "value2" );
        assertEquals( "value2", doc.getSecondField() );
    }

运行测试成功率只有90%。另一个时刻,我使用maven,当它运行项目测试时,它总是失败...
有谁能给我点建议吗?怎么写测试用沙发底座?

0qx6xfy6

0qx6xfy61#

问题已解决。原因是文档添加到治疗床后视图未刷新。因此仅需添加

query.setStale( Stale.FALSE );

接收数据前将刷新视图。

nafvub8i

nafvub8i2#

查询.setStale(过时.FALSE)
这将刷新视图,并且旧数据将不会出现在那里

相关问题