我正在使用三个java文件并使用Junit。
测试类是我在主类中的枚举方面遇到错误的地方。
修改
我发现这是按原样运作的。只是没有更大规模的实施。
Goods.java
class Good {
private static StaticTest.THESES name;
static void setStatusName(StaticTest.THESES status) {
name = status;
}
static StaticTest.THESES getStatusName() {
return name;
}
}
的Test.class
import org.junit.Test;
import static org.junit.Assert.*;
public class Tests {
@Test
public void test() {
Good good = new Good();
good.setStatusName(Library.STATUSES.HIM);
String actual = good.getStatusName().toString();
String expected = Library.STATUSES.HIM.toString();
assertEquals(expected, actual);
}
public static void main(String args[]) {
Tests runningTest = new Tests();
runningTest.test();
}
}
class Library {
public static enum STATUSES {
YOU, ME, HER, HIM, THEM, US
}
}
你能告诉我在我的产品类中找不到任何值吗?
答案 0 :(得分:0)
您需要更好地掌握声明某事static
的含义。我认为每个Good
都需要拥有自己的状态 - 因此您没有将private status
声明为static
,因此您走在正确的轨道上。你的问题(正如Boris指出的那样)是你试图通过使用status
(类级别)方法来改变实例变量static
。
我想你会想要使用类似下面的内容来启动你。
public class Test {
public static void main(String[] args) {
Good good = new Good();
good.setStatus(Library.STATUS.SALE);
System.out.println("Good's status: " + good.getStatus());
}
}
class Good {
private Library.STATUS status;
public void setStatus(Library.STATUS status) {
this.status = status;
}
public Library.STATUS getStatus() {
return status;
}
}
class Library {
public enum STATUS {
SALE, NOSALEITEM, ITEMOOS, SHIPPING, ONORDER, INSTOCK
}
}