我写了这段代码,但我对 JUnit 还很陌生,不知道测试 equal 和 equal2 方法。下面是我写的代码。我在此代码中的目的是使用 equal 方法查看 fname 是否等于 lname ,并使用 equal2 检查 fname 是否与 fname (它本身)相同,也许我的代码也有错误。
public class EqualMethods {
/**
* @param args
*/
private String fname;
private String lname;
public EqualMethods(String fl)
{
fname = fl;
}
public EqualMethods(String f, String l)
{
fname = f;
lname = l;
}
public String getFname() {
return fname;
}
public String getLname()
{
return lname;
}
public void setLname(String lname)
{
this.lname = lname;
}
public void setFname(String fname) {
this.fname = fname;
}
public int equal(EqualMethods name)
{
if(fname == name.getFname() && lname == name.getLname())
{
return 1;
}
else
{
return 0;
}
}
public int equal2(Object o)
{
if(o.getClass() == EqualMethods.class )
{
EqualMethods e = (EqualMethods) o;
if(this.fname.equals(e.fname))
{
return 1;
}
return 0;
}
return 0;
}
public String toString()
{
return (" My first name is: "+fname + " Last name is: " + lname);
}Run Code Online (Sandbox Code Playgroud)
目标是创建一个 equal 和 equal2 的 Junit 测试用例,因为我创建的测试用例没有提供正确的输出。这是我编写的 JUnit 测试用例,但我无法使我的方法静态,但如何解决它?
public class EqualMethodsTest extends TestCase{
@Test
public void testEqual2() {
String name = "goma";
int ret = 1;
int ans ;
ans= EqualMethods.equal2(name);
assertEquals(ret,ans);
}
}Run Code Online (Sandbox Code Playgroud)
您需要创建 EqualMethods 实例来比较它们。像这样:
public class EqualMethodsTest extends TestCase{
@Test
public void testEqual2() {
assertEquals(1, new EqualMethods("goma").equal(new EqualMethods("goma")));
}
}
Run Code Online (Sandbox Code Playgroud)
编辑: 关于代码的一些评论:
fname == name.getFname()没有达到您想要完成的目标。这会比较对两个字符串的引用,而不是内容。字符串是对象,可以像这样进行比较string1.equals(string2)。| 归档时间: |
|
| 查看次数: |
28680 次 |
| 最近记录: |