在使用ant执行的junit测试中调用assertArrayEquals



我用ant构建我的项目,用junit编写测试。我正面临一个奇怪的问题。考虑下面的代码

import junit.framework.*;
public class Test extends TestCase {
    public Test(String name) {
       super(name);
    }
    public testA() {
          //..Code 
          Assert.arrayEquals(expected,actual) //This does not work
          org.junit.Assert.arrayEquals(expected,actual) //This works !
    }
}

为什么我需要附加org.unit而不能直接使用Assert类。我在build.xml中设置了junit,如下所示:

<property name="lib" value="./lib" />
<property name="classes" value="./build/classes" />
<property name="test.class.name" value="Test"/>

<path id="test.classpath">
      <pathelement location="${classes}" />
      <pathelement location="./lib/junit-4.10.jar" />
      <fileset dir="${lib}">
            <include name="**/*.jar"/>
      </fileset>
</path>

<target name="test" depends="compile">
        <junit fork="yes" haltonfailure="yes">
            <test name="${test.class.name}" />
            <formatter type="plain" usefile="false" />
            <classpath refid="test.classpath" />
          </junit> 
</target>

更改

import junit.framework.*;

 import static org.junit.Assert.*;

我不完全确定junit.framework包的用途,但导入静态技巧是常见的解决方案,并在Assert的Javadoc页面上进行了说明。

相关内容

  • 没有找到相关文章