首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改构造函数参数?

如何更改构造函数参数?
EN

Stack Overflow用户
提问于 2021-11-02 13:10:41
回答 1查看 45关注 0票数 1

我在其构造函数中执行验证的记录如下:

代码语言:javascript
复制
public record Configuration(URI url) {
  public Configuration(URI url) {
    Validate.httpValid(url, "url");
  }
}

其中,httpValid方法是:

代码语言:javascript
复制
public static URI httpValid(final URI value, final String property) {
    try {
      value.toURL();
    } catch (IllegalArgumentException | MalformedURLException e) {
      throw new InvalidPropertyValueException(property, "httpValid", value, Map.of());
    }
    return value;
  }

然而,这失败了我试图创建的测试:

代码语言:javascript
复制
@Test
  void Should_RespectEqualsContract() {
    EqualsVerifier
        .forClass(Configuration.class)
        .withPrefabValues(
            Configuration.class,
            new Configuration(URI.create("http://a.com")),
            new Configuration(URI.create("http://b.com")))
        .verify();
  }

这是因为EqualsVerifier试图创建一个以"x“作为参数的对象:InvalidPropertyValueException: The value x is not a valid httpValid as url

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-05 07:13:38

你们很亲密。您不应该将正在测试的类作为预置值提供;相反,您需要提供引起麻烦的参数,如下所示:

代码语言:javascript
复制
@Test
void Should_RespectEqualsContract() {
    EqualsVerifier
        .forClass(Configuration.class)
        .withPrefabValues(
            URI.class,
            URI.create("http://a.com"),
            URI.create("http://b.com"))
        .verify();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69811066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档