我遇到了一些奇怪的事情。 函数示例:
public class F {
public enum Pawn {Black, White}
public Pawn x;
public F(){
this.x = Pawn.Black;
}
public Pawn test(){
return this.x;
}
}
对此的单元测试:
import junit.framework.Assert;
import junit.framework.TestCase;
import <package ... >.F;
public class FTest extends TestCase {
public void testValue(){
F mF = new F();
Assert.assertSame(Pawn.Black, mF.test());
}
}
和 JUnit 输出:
junit.framework.AssertionFailedError: expected same:<Black> was not:<Black>
Expected :Black
Actual :Black
黑色不是黑色,是黑色。这是黑魔法。 :/ 我该怎么做才能完成这项工作(即通过测试)?
最佳答案
您需要 AssertEquals,而不是 AssertSame
assertEquals(java.lang.Object expected, java.lang.Object actual) Asserts that two objects are equal.
assertSame(java.lang.Object expected, java.lang.Object actual) Asserts that two objects refer to the same object
您的代码将对象 F.x 与枚举对象 Pawn.Black 进行比较。应该是
public void testValue(){
F mF = new F();
Assert.assertEquals(F.Pawn.Black, mF.test());
}
关于java - 枚举类型的Android单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859035/