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