gpt4 book ai didi

java - 如何实现 hamcrest 匹配器

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:20 24 4
gpt4 key购买 nike

我想运行这行代码:

assertThat(contextPin.get(), equalTo(pinPage.getPinObjFromUi()));

但我想打印到日志中以提供信息

这意味着我可以知道哪些字段不相等。

所以我想到了实现一个匹配器。

我用谷歌搜索过,但写不正确

因为我的方法无法将 actualexpected 对象放在一起。

这是我的代码:

我怎样才能把它写干净?

public class PinMatcher extends TypeSafeMatcher<Pin> {

private Pin actual;
private Object item;

public PinMatcher(Pin actual) {
this.actual = actual;
}

@Override
protected boolean matchesSafely(Pin item) {
return false;
}

@Override
public void describeTo(Description description) {

}

//cannot override this way
@Override
public boolean matches(Object item){
assertThat(actual.title, equalTo(expected.title));
return true;
}

//cannot access actual when called like this:
// assertThat(contextPin.get(), new PinMatcher.pinMatches(pinPage.getPinObjFromUi()));
@Override
public boolean pinMatches(Object item){
assertThat(actual.title, equalTo(expected.title));
return true;
}
}

最佳答案

尝试更像这样的东西:

package com.mycompany.core;

import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;


public class PinMatcher extends TypeSafeMatcher<Pin> {

private Pin actual;

public PinMatcher(Pin actual) {
this.actual = actual;
}

@Override
protected boolean matchesSafely(Pin item) {
return actual.title.equals(item.title);
}

@Override
public void describeTo(Description description) {
description.appendText("should match title ").appendText(actual.title);

}
}

关于java - 如何实现 hamcrest 匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com