【发布时间】:2016-08-25 22:29:23
【问题描述】:
我正在使用和使用 Junit 的三个 java 文件。
测试类是关于主类中的枚举的错误。
编辑
我发现这是按原样工作的。只是没有在更大规模的实施中。
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
}
}
你能告诉我我在产品类中找不到什么值吗?
【问题讨论】:
-
private Library.STATUSES status;不是static。这段代码只是因为一个怪癖而编译 -status = status将值分配给 itself。 -
请遵循 Java 命名约定。
-
@BoristheSpider 我不认为
getStatus()编译。 -
另一点值得一提:您的“生产代码”(Good 类)绝对应该不依赖于“测试代码”中的任何内容。测试代码依赖于生产代码,反之则不然!
-
@shmosel 我认为它应该;但我很懒,没试过。另外,我在大约 3 年内没有使用没有
final参数的方法,所以我很可能是错的......
标签: java junit enums architecture static