gpt4 book ai didi

java - 为方法返回对象编写 junit 测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:47:35 26 4
gpt4 key购买 nike

我是编写 junit 测试的新手。我坚持如何为返回对象的方法编写测试。我经历了这个 question ,但我不相信。我无法更改方法。我想为此方法编写一个测试:

public final class Demo{
public Test getTestObject() {
return this.testObject== null ? Test.getDefaultInstance() : this.testObject;
}
}

Test Class:
public final Test{
private Test()
{
}
}

感谢您的帮助。

最佳答案

您可以为您的 Test 对象实现一个好的 equals 方法,并在您的单元测试中使用它。我写了一个示例代码。

public class Foo
{

int a = 0;
int b = 0;
String c = "";

public Foo(int a, int b, String c)
{
this.a = a;
this.b = b;
this.c = c;
}

public static Foo getDefaultInstance()
{
return new Foo(1, 1, "test");
}

@Override
public boolean equals(Object o){
if (o == this) return true;
if (!(o instanceof Foo)) {
return false;
}

Foo foo = (Foo) o;

return foo.a== a &&
foo.b == b &&
foo.c.equalsIgnoreCase(c);
}

@Override
public int hashCode() {
int result = 17;
result = 31 * result + a;
result = 31 * result + b;
result = 31 * result + c.hashCode();
return result;
}

}

这个类包含我们需要测试的方法。

public class Other
{
Foo foo;

public Foo getFoo()
{
return this.foo == null ? Foo.getDefaultInstance() : this.foo;
}

}

这是带有测试方法的类。

import org.junit.Test;
import static org.junit.Assert.*;

public class MyTest
{
@Test
public void testGetFoo() {
Other other = new Other();
Foo foo = other.getFoo();
assertEquals(foo, new Foo(1, 1, "test"));

}
}

关于java - 为方法返回对象编写 junit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49934590/

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