Hamcrest 匹配枚举值?
Hamcrest matching enum values?
我可能在这里遗漏了一些非常明显的东西,当我看到它时,我会打自己的。
我正在尝试测试 returns 一个带有 Hamcrest 的枚举的方法的输出:
@Test
public void testGetBuildInfo() throws Exception {
BuildType build = repository.getBuildInfo(169552, null, 582892L);
assertThat(build.getPolicyComplianceStatus(), IsEqual.equalTo(PolicyComplianceType.DID_NOT_PASS));
}
但我收到以下错误:
The method assertThat(T, Matcher<? super T>) in the type MatcherAssert is not applicable for the arguments (PolicyComplianceType, Matcher<PolicyComplianceType>)
相关 BuildType 的签名:
public PolicyComplianceType getPolicyComplianceStatus();
枚举策略合规类型:
public enum PolicyComplianceType {
CALCULATING("Calculating..."),
NOT_ASSESSED("Not Assessed"),
DID_NOT_PASS("Did Not Pass");
...
...
}
我没看到什么?
假设这是一个编译器错误——它看起来是——而不是 运行 时间错误,我必须假设你有两个不同的类型,名为 PolicyComplianceType
,在不同的包中,并且 BuildType.getBuildInfo()
returns 与在您的测试 class 中 import
不同。如果这与您当前的代码不一致,则可能 class BuildType
已过时,需要重新编译(似乎不太可能是测试 class 已过时)。同样,编译器可能依赖于 class BuildType
的过时版本,即使当前 source class是最新的。
我可能在这里遗漏了一些非常明显的东西,当我看到它时,我会打自己的。
我正在尝试测试 returns 一个带有 Hamcrest 的枚举的方法的输出:
@Test
public void testGetBuildInfo() throws Exception {
BuildType build = repository.getBuildInfo(169552, null, 582892L);
assertThat(build.getPolicyComplianceStatus(), IsEqual.equalTo(PolicyComplianceType.DID_NOT_PASS));
}
但我收到以下错误:
The method assertThat(T, Matcher<? super T>) in the type MatcherAssert is not applicable for the arguments (PolicyComplianceType, Matcher<PolicyComplianceType>)
相关 BuildType 的签名:
public PolicyComplianceType getPolicyComplianceStatus();
枚举策略合规类型:
public enum PolicyComplianceType {
CALCULATING("Calculating..."),
NOT_ASSESSED("Not Assessed"),
DID_NOT_PASS("Did Not Pass");
...
...
}
我没看到什么?
假设这是一个编译器错误——它看起来是——而不是 运行 时间错误,我必须假设你有两个不同的类型,名为 PolicyComplianceType
,在不同的包中,并且 BuildType.getBuildInfo()
returns 与在您的测试 class 中 import
不同。如果这与您当前的代码不一致,则可能 class BuildType
已过时,需要重新编译(似乎不太可能是测试 class 已过时)。同样,编译器可能依赖于 class BuildType
的过时版本,即使当前 source class是最新的。