我有一些代码,类似于:
public class Foo
{
private String Bar;
public Foo(String _bar)
{
Bar = new String(_bar);
}
public String getBar() { return Bar; }
@Override
public boolean equals(Object o)
{
if (o == this) return true;
if (!(o instanceof Foo)) return false;
Foo temp = (Foo)o;
if (Bar == null) return (Bar==temp.Bar);
return (Bar.equals(temp.Bar));
}
@Override
public int hashCode()
{
return Objects.hash(this.Bar);
}
}
我想尝试为这个类编写一个测试用例,它将测试我的所有方法。我也试图了解套件()方法是什么以及如何使用TestRunner。
我将如何开始这样做?
编辑1:修正了上面的错误
另外,一个测试类
public class FooTest
{
private FooTest ft;
@Before
public void setUp() throws Exception
{
ft = new FooTest("baz");
}
@Test
public void testGetFoo()
{
assertEquals(ft.getBar(),"baz");
}
@Test
public void testEquals()
{
assertEquals(ft.equals(new Foo("baz")), true);
assertEquals(ft.equals(new String("no")),false);
assertEquals(ft.equals(ft), true);
assertEquals(ft.equals(null),false);
}
}
我遇到过这个网站(http://users.csc.calpoly.edu/~djanzen/tdl/tddintro/helloworld/)非常有帮助。但是,我在AllTests.java下的页面上的代码部分遇到了问题,具体来说是:
public static junit.framework.Test suite()
{
return new JUnit4TestAdapter(AllTests.class);
}
在eclipse中,我收到以下错误消息:
The method JUnit4TestAdapter(Class<Foo>) is undefined for the type AllTests
如何解决此错误?
答案 0 :(得分:0)
这是一个简单的Junit测试,用于练习您的代码:
import org.junit.Test;
import static org.junit.Assert.*;
public class FooTest {
@Test
public void testFooIsNotNull() {
Foo myFoo = new Foo("Bar");
assertNotNull(myFoo);
}
@Test
public void testFooBarEqualsBar() {
Foo myFoo = new Foo("bar");
assertEquals("bar", myFoo.getBar());
}
我正在测试myFoo不是NULL,&#34; bar&#34;等于myFoo.getBar()
我修复了你的代码,所以等于覆盖工作:
import java.util.Objects;
public class Foo {
private String Bar;
public Foo(String bar) {
Bar = new String(bar);
}
public String getBar() {
return Bar;
}
@Override
public boolean equals(Object o) {
if (o == this)
return true;
if (!(o instanceof Foo))
return false;
Foo temp = (Foo)o;
if (Bar == null)
return (Bar==temp.Bar);
return (Bar.equals(temp.Bar));
}
@Override
public int hashCode() {
return Objects.hash(this.Bar);
}
}
您的代码需要进一步的工作。但简单的单元测试工作。