Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.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在多个测试表之间传输数据?_Fitnesse_Fitnesse Slim - Fatal编程技术网

如何使用java对象和Fitnesse在多个测试表之间传输数据?

如何使用java对象和Fitnesse在多个测试表之间传输数据?,fitnesse,fitnesse-slim,Fitnesse,Fitnesse Slim,目前我正在学习FitNesse。我在一个测试页面中有两个不同的测试表,希望在“InventoryFixture”表中添加/删除数量 我的问题是,我无法使用“myInventory”对象从“InventoryFixture”表中获取数量的值。我的目标是确保每次使用相同的对象,并引用类“InventoryFixture” 我在开发和扩展ColumnFixture时使用java 在“AddRemoveItemFixture”类中,我获取新项目并将它们添加到“InventoryFixture”类中的数

目前我正在学习FitNesse。我在一个测试页面中有两个不同的测试表,希望在“InventoryFixture”表中添加/删除数量

我的问题是,我无法使用“myInventory”对象从“InventoryFixture”表中获取数量的值。我的目标是确保每次使用相同的对象,并引用类“InventoryFixture”

我在开发和扩展ColumnFixture时使用java

在“AddRemoveItemFixture”类中,我获取新项目并将它们添加到“InventoryFixture”类中的数量中

我好像错过了什么,有人能告诉我吗

it seems I'm missing something, can anyone tell me what?
下面是我所有的java代码:

package fitNesseExample;
 import fit.ColumnFixture;

public class InventoryFixture extends ColumnFixture{
    private int quantity;
    private int partNumber;

    public int getQuantity(){
       return  quantity;
    }

    public void setQuantity(int quantity){
       this.quantity = quantity;
    }


    public int getPartNumber() {
       return partNumber;
    }

    public void setPartNumber(int partNumber) {
       this.partNumber = partNumber;
    }

    public boolean valid(){
        if(quantity>0){
            return true;
        }else{
            return false;
        }
     }

    public int addQuantities(int item){

       int items = item;
       return items;
     }

  }
在这个类中,我通过函数addItems()添加了新的项,问题来了。myInventory.getQuantity()返回[0]而不是[28],因此项目总数是(0+5=5)而不是(28+5=33)

我将类InventoryFixture实例化为:

package fitNesseExample;
   import fit.ColumnFixture;
   public abstract class StaticInventory extends ColumnFixture{

        public static InventoryFixture myInventory;
        public static InventoryFixture getMyInventory(){
           if(myInventory == null) myInventory = new InventoryFixture();
           return myInventory;
         }
    }

问题在于第一个FitNesse表创建了一个新的
InventoryFixture
实例,该实例与静态
myInventory
实例不同。因此,第一个表没有更新
myInventory

我希望您知道为什么
myInventory.getQuantity()
返回5,因为当您说
myInventory=StaticInventory.getMyInventory()
它创建一个新实例并为其成员指定默认值

如果要在装置之间传输数据,请在执行第一个表时使用doFixture并将数据保存在某个全局变量中,然后在执行第二个表时重用该全局变量

您可能想从Bob叔叔的页面上阅读有关doFixture的内容

请记住,您可以从doFixture返回一个fixture,这样您就可以使用它做任何事情


理想情况下,您应该将以前的值(在本例中为数量28,1)传递给新夹具并返回附加值。这将有助于理解业务利益相关者,并使其看起来干净。

请发布所有Java代码。@Mike Stockdale:我添加了所有Java代码。谢谢,我现在看到问题了。你能帮我解决这个问题吗。我在InventoryFixture类中将partNumber和quantity定义为公共静态变量,但仍然不起作用。我将创建一个单独的类,其中包含一个静态实例来保存库存,然后两个装置都可以使用该实例传递信息
package fitNesseExample;
   import fit.ColumnFixture;
   public abstract class StaticInventory extends ColumnFixture{

        public static InventoryFixture myInventory;
        public static InventoryFixture getMyInventory(){
           if(myInventory == null) myInventory = new InventoryFixture();
           return myInventory;
         }
    }