2017-01-11 14 views
2

私は休止状態のセッションを模擬しようとしていました。コンソールによると、セッションファクトリがnullではない休止状態のセッションを黙って

@Mock 
SessionFactory sessionFactory; 

@InjectMocks 
DraftCampaignModelBuilder draftBuilder; 

private DraftCampaignModel campaignModel; 
private Session session; 

@Before 
public void setUp() { 
    campaignModel = DraftTestHelper.buildDraftModel(); 
    if(sessionFactory != null) { 
     System.out.println("Session Factory not null"); 
    } 
    else 
     System.out.println("Session Factory is null"); 
    session = sessionFactory.getCurrentSession(); 

    if(session != null) { 
     System.out.print("Not null"); 
    } 
    else 
     System.out.println("Null"); 

} 

モックコード:これは私が試したコードスニペットです。しかし、休止状態のセッションはnullです。誰でもこれを助けてくれますか?

おかげ

+0

モックコードも入力してください。 –

+0

ありがとうございます。追加した。どうぞご覧ください – user3681970

+0

あなたは 'getCurrentSession()'メソッドを嘲笑しません。私はあなたが何かを返すためにこのメソッドを嘲笑する必要があると思う。 – alayor

答えて

2

私はあなたがあなたの@Before方法でこれを書くために必要があると思う:

when(sessionFactory.getCurrentSession()).thenReturn(hibernateSession); 

例えば

@Mock 
private HibernateSession hibernateSession; 

@Before 
public void setUp() { 
    when(sessionFactory.getCurrentSession()).thenReturn(hibernateSession); 

    campaignModel = DraftTestHelper.buildDraftModel(); 
    if(sessionFactory == null) { 
     System.out.println("Session Factory is null"); 
    } 
    else { 
     System.out.println("Session Factory is not null"); 
     session = sessionFactory.getCurrentSession(); 

     if(session != null) { 
      System.out.print("Session is not null"); 
     } 
     else { 
      System.out.println("Session is null"); 
     } 
    } 
} 
+0

ええ..より簡単なアプローチは、クラスレベルで@Mockするだけです。手伝ってくれてありがとう!!!!!数分で答えを受け入れます。 – user3681970