現在、FitNesse を学んでいます。1 つのテスト ページに 2 つの異なるテスト テーブルがあり、"InventoryFixture" テーブルで数量を追加/削除したいと考えています。
私の問題は、「myInventory」オブジェクトを使用して「InventoryFixture」テーブルから数量の値を取得できないことです。私の目的は、毎回同じオブジェクトで作業していることを確認し、クラス「InventoryFixture」を参照することです。
私は開発でJavaを使用しており、ColumnFixtureを拡張しています。
クラス「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() は [28] ではなく [0] を返すため、アイテムの合計は (0+5 = 5) ではなく (28+5 = 33) になります。
package fitNesseExample;
import fit.ColumnFixture;
public class AddRemoveItemFixture extends ColumnFixture{
public int partNumber;
public int newItems;
public InventoryFixture myInventory;
public void setNewItems(int newItems){
this.newItems = newItems;
}
public void setPartNumber(int partNumber) {
this.partNumber = partNumber;
}
public int addItems(){
myInventory = StaticInventory.getMyInventory();
int totalItems = myInventory.addQuantities(myInventory.getQuantity() + newItems);
myInventory.setQuantity(totalItems);
return myInventory.getQuantity();
}
}
クラス 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;
}
}