如何为实用程序类创建一个简单的android测试用例

时间:2014-05-21 03:14:30

标签: java android unit-testing testing junit

我有一个我创建的实用工具类:

package com.g2.quizification.utils;

import com.g2.quizification.domain.Question;

public class ParsingUtils {
    public static Question parse(String raw) {

        Question question = new Question();

        //TODO: parse some stuff

        return question;
    }
}

......住在这里:

App with class to be tested

我也按照教程编写了一个测试应用程序,如下所示:

enter image description here

这是我的测试代码,只是等待一些好的'ole TDD:

package com.g2.quizification.utils.test;


import com.g2.quizification.domain.Question;
import com.g2.quizification.utils.ParsingUtils;

public class ParsingUtilsTest  {

    public void testParse() {

        String raw = "Q:Question? A:Answer.";
        Question question = ParsingUtils.parse(raw);
        //assertEquals("Question?", question.getQuestion());
        //assertEquals("Answer.", question.getAnswer());

    }
}

测试类显然缺少扩展,但所有示例似乎只显示类似ActivityUnitTestCase的扩展。 我没有测试一项活动;我只想在实用程序类中测试静态方法。这可能吗?

似乎就像创建实用程序测试类一样简单,但我不确定下一步是什么和/或我缺少什么。 < / p>

2 个答案:

答案 0 :(得分:0)

测试项目的最佳方法是添加测试项目,使其根目录test /与主应用程序项目的src /目录处于同一级别。如果您使用的是junit4和eclipse,您只需右键单击要测试的util类,然后选择New - &gt; JUnit测试用例。

基本上我希望在源文件夹test /和com.g2.quizification.utils.test包中有一个名为ParsingUtilTest的新测试类。测试类应该扩展TestCase,并且要在该util类中测试的每个方法都应该在测试类中使用名为“test”的名称的新方法。我的意思是说,假设您在ParsingUtils中有一个名为parseXml的方法名称。 ParsingUtilsTest中的测试方法名称(Extend'TestCase')应命名为testParseXml

答案 1 :(得分:0)

  

测试类显然缺少扩展,但所有示例似乎只显示像ActivityUnitTestCase这样的扩展。我没有测试一项活动;我只想在实用程序类中测试静态方法。这可能吗?

是的,只要您正在测试的类与android apis无关。如果您确实需要使用android api依赖项测试代码,例如,测试视图或活动,您可能想尝试使用robolectric。它比扩展ActivityUnitTestCase的速度要快。

我一直在玩robolectric(在android上做TDD),到目前为止,我更喜欢1.1或1.2到2.x版本,更稳定,运行速度更快。

除了上面提到的工具之外,还有许多编写好的测试用例,命名约定,代码重构等的实践。

  

似乎创建一个实用程序测试类应该很简单,但我不确定下一步是什么和/或我缺少什么。

从小步骤开始,xUnit测试模式:重构测试代码和极限编程解释是一些很好的书供你参考。