单元测试 - 读取xml文件

时间:2011-08-25 14:34:50

标签: java unit-testing junit

我正在尝试对加载和读取xml文件的类进行单元测试。 我正在使用NetBeans。

这是我的班级结构,

Class A
{

private String fileName;

A (String fileName)
 {
  this.fileName = fileName;
  load();
 }
private load()
{
//here i load a xml file by given name
} 
public readXml()
{
// read xml file and return list of records
}
}

使用NetBeans,它会生成一些带有方法的测试类

  @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }
 @After
    public void tearDown() {
    }
 @Before
    public void setUp() {
}

和TestReadXml()

的一种方法

我必须加载文件才能执行方法“readXml”的单元测试,因为对于clas“A”我hava方法“load()”在cunstrctor中调用以加载文件和方法readXml仅用于读取和返回记录。

由于

修改

想要测试方法readXml(),给出输入xml文件中的expect结果。 preriquest是加载一个xml文件。 关键是我不知道在哪里做这个动作,所以我得到一个错误

java.lang.NullPointerException
    at com.schober.main.ATest.testReadXml(ATest.java:83)

因为这里  assertEquals(expResult,result);

结果为空

1 个答案:

答案 0 :(得分:2)

您应该测试类文件的所有公共方法和构造函数。测试将验证每个可能输入的调用都会给出预期的结果。

在您的情况下,您可以编写一些测试来测试构造函数。使用不同的参数调用它,如

  • 表示可读且有效的xml文件的字符串
  • null
  • 不代表文件或文件夹的字符串
  • 表示文件夹的字符串
  • 表示不包含xml代码的文件的字符串
  • 表示包含格式错误的xml代码的文件的字符串
  • 表示包含无效xml代码的文件的字符串
  • 一个字符串,表示包含有效xml代码但使用不同架构的文件