我有一个班级出货测试

导入com.monotonic.Shipment.project.ProductFixture;

public class ShipmentTest  {

    private Shipment shipment = new Shipment();

    @Test
    public void shouldAddItems() throws Exception {
        shipment.add(door); // it is not recognizing door and window objs
        shipment.add(window);

        assertThat(shipment, contains(door, window));
    }


我已经从ProductFixture类导入的门和窗

public static Product door = new Product("Wooden Door", 35);
    public static Product floorPanel = new Product("Floor Panel", 25);
    public static Product window = new Product("Glass Window", 10);


我已将上述对象设为静态,以便可以直接访问它们,但是在我的测试类中,它无法识别从productFicture类中选择的变量

以下是货件类别的添加方法

private final List<Product> products = new ArrayList<Product>();

    public void add(Product product) {
        products.add(product);
    }


有人可以让我知道如何在不实例化productFixture类的情况下访问测试类中的门对象
非常感谢

最佳答案

static类中需要import ShipmentTest

更改您的导入

import com.monotonic.Shipment.project.ProductFixture;




import static com.monotonic.Shipment.project.ProductFixture.*;


请注意,从代码可读性和可维护性的角度来看,过多的静态导入是不好的。

因此,除了静态导入外,您还可以在ProductFixture.door, ProductFixture.floorPanel类中将ProductFixture.windowProductFixture与常规导入ShipmentTest一起使用。

09-10 09:44