当前位置: 首页 > 面试题库 >

assertEquals(obj,obj)返回失败的测试

鄢晔
2023-03-14
问题内容

嗯,我有一个金钱对象,可以将其他金钱对象添加到其中。我assertEquals()在Java中尝试测试我的代码是否还可以,但是随后失败了。

我非常肯定自己的代码是正确的(System.out.println返回正确的答案),我认为我使用assertEquals的是错误的方式。T_T

如果要查找是否myObj1 == myObj2要进行测试,该怎么使用?

**in my test.java**    
assertEquals(new Money(money1.getCurrency(),new Value(22,70)),money1.add(money2));

**in my money class**
public class Money {
    Currency currency;
    Value value;

    //constructor for Money class
    public Money(Currency currency, Value value) {
        super();
        this.currency = currency;
        this.value = value;
    }

    public Currency getCurrency() {
        return currency;
    }

    public void setCurrency(Currency currency) {
        this.currency = currency;
    }

    //must have same currency
    public Money add(Money moneyToBeAdded){
        Money result = new Money(moneyToBeAdded.currency, new Value(0,0));
        Value totalInCents;
        int tempCents;
        int tempDollars;

        if(compareCurrency(moneyToBeAdded)){
            totalInCents = new Value(0,moneyToBeAdded.value.toCents()+value.toCents());
            tempDollars = (totalInCents.toDollars().getDollar());
            tempCents = (totalInCents.toDollars().getCents());

            result = new Money(moneyToBeAdded.currency, new Value(tempDollars,tempCents));
            System.out.println(result.value.getDollar()+"."+result.value.getCents());
        }
        return result;
    }

    private boolean compareCurrency(Money money){
        return (money.currency.equals(currency))? true : false;
    }
}

问题答案:

您没有equals()在Money类中重写Object类中的方法。如果是这样,则通过它们的引用比较对象,在这种情况下,引用是不同的。
在这里您可以找到实施规则equals



 类似资料:
  • 问题内容: 我的老板说我应该使用,因为它比更好,但是他不记得为什么这样做。有什么理由要使用吗? 我以某种方式感觉到…相反! 在Google上进行搜索后,我发现的唯一结果是: 在C语言中,它可以防止您意外地在条件结构中键入(obj = null)。 问题答案: 您不能通过输入来意外分配给它。但是,这是C时代的回忆,在Java中是不可能的,因为表达式返回赋值的右侧。由于不是,编译器会抱怨。 我会尽力向

  • 本文向大家介绍请编写一个对象obj满足 obj=='a' && obj=='b' && obj=='c'相关面试题,主要包含被问及请编写一个对象obj满足 obj=='a' && obj=='b' && obj=='c'时的应答技巧和注意事项,需要的朋友参考一下

  • The obj-model component loads a 3D model and material using a Wavefront(.OBJ) file and a .MTL file. Example We can load an .OBJ model by pointing to assets that specify the path to an .OBJ and .MTL fi

  • 参数 (Parameters) obj - 这是要从列表中删除的对象。 返回值 (Return Value) 此方法不返回任何值,但从列表中删除给定的对象。 例子 (Example) 以下示例显示了remove()方法的用法。 #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.remove('xyz'); pri

  • 描述 (Description) 方法index()返回obj出现的列表中的最低索引。 语法 (Syntax) 以下是index()方法的语法 - list.index(obj) 参数 (Parameters) obj - 这是要找出的对象。 返回值 (Return Value) 此方法返回找到的对象的索引,否则引发一个异常,指示该值未找到。 例子 (Example) 以下示例显示了index(

  • 描述 (Description) 方法count()返回列表中obj出现次数的计数。 语法 (Syntax) 以下是count()方法的语法 - list.count(obj) 参数 (Parameters) obj - 这是要在列表中计算的对象。 返回值 (Return Value) 此方法返回列表中obj出现次数的计数。 例子 (Example) 以下示例显示了count()方法的用法。 #