我有一个班级出货测试
导入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.window
和ProductFixture
与常规导入ShipmentTest
一起使用。