我们需要初始化@mock对象吗?

时间:2014-05-29 06:48:00

标签: java junit mockito

我使用mockito为junit。我在创建对象模拟时有疑问。 我有一个名为DBConnect的类。我需要数据库属性,如dbname,凭据等。 PatientDetails使用此类。现在我正在为PatientDetails写junit。所以我使用以下代码。

 @RunWith(MockitoJUnitRunner.class)  
   public class PatientDetailsTest {
      @Mock
      DBConnect dbConnect

      @Before
      public void setUp()
      {

      PatientDetails testClass = new PatientDetails();
      testClass.setDBConnect(dbConnect);
      }
   }

我无法得到正确的结果。

1 个答案:

答案 0 :(得分:0)

你的代码对我来说似乎很好。我稍微扩展它以包括测试,以便它可以运行。这很好用:

@RunWith(MockitoJUnitRunner.class)
public class PatientDetailsTest {
    @Mock
    DBConnect dbConnect;

    @Before
    public void setUp() {
        when(dbConnect.sayHello()).thenReturn("works for me");
        PatientDetails testClass = new PatientDetails();
        testClass.setDBConnect(dbConnect);
    }        

    @Test
    public void testname() throws Exception {
        System.out.println("foo");
    }

    private static interface DBConnect {
        String sayHello();
    }

    private static class PatientDetails {
        public void setDBConnect(DBConnect dbConnect) {
            System.out.println(dbConnect.sayHello());
        }
    }
}

输出:

works for me
foo