Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在多个Fitnesse测试之间共享content.txt数据_Java_Fitnesse - Fatal编程技术网

Java 在多个Fitnesse测试之间共享content.txt数据

Java 在多个Fitnesse测试之间共享content.txt数据,java,fitnesse,Java,Fitnesse,我试图在两个夹具测试之间使用一个content.txt文件。中间类TestUtility从content.txt文件获取数据,两个夹具测试调用该实用程序类。但是,我从getText获得了一个NullPointerException。我认为Fitnesse不接受中间测试文件。 有人知道我怎样才能做到这一点吗 public class TestUtility extends TableFixture { @BeforeClass public void setup(

我试图在两个夹具测试之间使用一个content.txt文件。中间类TestUtility从content.txt文件获取数据,两个夹具测试调用该实用程序类。但是,我从getText获得了一个NullPointerException。我认为Fitnesse不接受中间测试文件。 有人知道我怎样才能做到这一点吗

public class TestUtility  extends TableFixture { 
       @BeforeClass
        public void setup()  {
            System.out.println("in setup");
            cellR0C0 = getText(0,0);
            cellR1C0 = getText(1,0);
            cellR2C0 = getText(2,0);
            cellR0C1 = new Double(getInt(0,1));
            cellR1C1 = new Double(getInt(1,1));
           cellR2C1 = new Double(getInt(2,1));

    /**
     *
     * @param fitnessRows
     */
    public void showResults(int fitnessRows){

    }
}//end class TestUtility  

public class MyTestFixture {
        /**
         *
         * @param fitnessRows
         */
         public void showResults(int fitnessRows){
            TestUtility testUtility = new TestUtility()
            testUtility.setUp();
            testUTility.restOfTest()
        }
   }

content.txt
#!|TestUtility|
!|fitnesse.fixtures.TestUtility|
|ABCDE101|200|
|ABCDE102|300|
|ABCDE103|400|

当FitNesse测试引擎创建像
TestUtility
这样的夹具时,FitNesse会初始化它,让您可以使用像
getText
这样的方法从测试页面访问信息。使用
new
创建夹具时,此信息不会初始化,调用
getText
将失败,如您所见


如果要在另一个类中使用某个装置中的信息,可以将该信息放入静态字段中,以便在FitNesse测试引擎创建类似于
TestUtility
的装置时,可以在另一个类中使用该信息,而无需使用
new
创建新实例,它由FitNesse初始化,允许您使用
getText
等方法从测试页面访问信息。使用
new
创建夹具时,此信息不会初始化,调用
getText
将失败,如您所见


如果要在另一个类中使用夹具中的信息,您可以将信息放入静态字段中,这样您就可以在另一个类中使用它,而无需使用
new
创建新实例。您可以使用标记将页面包含到另一个类中。

您可以使用标记将页面包含到另一个类中。

最好的方法是创建一个设置


使用SetUp或SuiteSetUp

最好的方法是创建一个设置


使用SetUp或SuiteSetUp

您应该让我们看看代码,也许社区可以帮助您。您在哪里使用MyTestFixture?您的问题提到了UtilityTest,但您展示了TestUtility的代码-为什么?我已经解决了这个问题。TestUtility位于fitnesse.fixtures和MyTestFixture下的src\test\java\fitnesse\fixtures下。您应该让我们看看代码,也许社区可以帮助您。您在哪里使用MyTestFixture?您的问题提到了UtilityTest,但您展示了TestUtility的代码-为什么?我已经解决了这个问题。TestUtility位于fitnesse.fixtures with MyTestFixture中,位于src\test\java\fitnesse\fixtures下。您的意思是使cellR0C0和setup为静态,并调用TestUtility.setup()之类的方法吗?是的,使cellR0C0为静态。但是您不能从另一个fixture调用安装程序,因为只有FitNesse在测试页面上执行TestUtility时才能调用getText。我使用getText从fixture获得输入,然后将输入传递给Utility类。看起来应该从夹具中调用getText和right()/Error()。您的意思是使cellR0C0和setup为静态,并调用TestUtility.setup()之类的方法吗?是的,使cellR0C0为静态。但是您不能从另一个fixture调用安装程序,因为只有FitNesse在测试页面上执行TestUtility时才能调用getText。我使用getText从fixture获得输入,然后将输入传递给Utility类。看起来应该从fixture调用getText和right()/error()。