如何编写android jUnit功能测试

时间:2011-11-10 19:18:23

标签: android unit-testing testing junit

我在编写jUnit测试时非常棒。我有一个Android程序,必须为它编写测试。我知道如何和我用robotium编写测试,但现在我需要功能测试,我不知道从哪里开始。我的代码中有一个函数:

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());
}

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您提供的方法私有,因此很难使用JUnit进行测试。使用JUnit进行单元测试时,您应该只测试公共方法。私有方法将间接测试。 如果您希望明确测试类中的私有方法,则应重新考虑类设计。一种解决方案是将此私有方法提取到新类中,并将该方法公之于众。

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