2011-11-10 170 views
0

我是写jUnit测试的完全noob。我有一个Android程序,必须为它编写测试。我知道如何和我用robotium编写测试,但现在我需要功能测试,而且我不会从哪里开始。我有一个函数从我的代码:如何编写android jUnit功能测试

private void onCoordinatesUpdate(Location loc){ 
    List<Event> list = wc.requestEvents(loc.getLatitude(), loc.getLongitude()); 
    if(list != null){ 
     adapter = new EventsArrayAdapter(this.getApplicationContext(), R.id.eventsView, (ArrayList<Event>)list); 
     ev.setAdapter(adapter); 
    } 
} 

我必须为它编写测试。对我而言,问题在于我不知道如何编写测试,它会检测IF语句中的表达式是否已从“list!= null”更改为“list == null”。测试的唯一想法是我能想到的是:

public void testCheckInternet(){ 
    assertTrue(mClassToTest.checkInternet()); 
} 

但他的测试只检查设备是否连接到互联网,就是这样。我不需要任何人为我写测试,但也许有人可能会告诉我的方式:)如何开始:)预先感谢。

回答

0

方法您提供的是私人并因此很难用JUnit进行测试。在使用JUnit进行单元测试时,您应该只测试公共方法。私人方法将被间接测试。 如果你想要明确测试你的类中有私有方法,你应该重新考虑你的类设计。一种解决方案是将这种私人方法提取到一个新类中,并公开该方法。

一般来说,有代码是可测试的,有代码是不可测试的。 测试驱动开发是一种帮助设计可测试代码的技术。一个好的起点是the JUnit documentation

1

请参阅Android开发者指南的Testing部分。

+0

其实我读了所有这些,我明白测试的工作原理。事情是,我不明白如何编写检查IF条件的测试,或者例如FOR循环中的初始值。我无法在互联网上找到任何样本,我只需要一个例子。 – JNM

+0

请看我上面给你的。它有它的例子。 –