Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在junit中断言arrayList内容时发生断言错误_Java_Junit4_Hamcrest - Fatal编程技术网

Java 在junit中断言arrayList内容时发生断言错误

Java 在junit中断言arrayList内容时发生断言错误,java,junit4,hamcrest,Java,Junit4,Hamcrest,使用assertTrue和assertarayequals尝试了此处提供的解决方案,但运气不佳 我遗漏了什么吗 更新: 尝试如下: @Override public int hashCode() { return this.getName().hashCode(); } @Override public boolean equals(Object obj) { if(obj != null && obj instanceof Achievement){ Ac

使用
assertTrue
assertarayequals
尝试了此处提供的解决方案,但运气不佳

我遗漏了什么吗

更新:

尝试如下:

@Override
public int hashCode() {
    return this.getName().hashCode();
}

@Override
public boolean equals(Object obj) {

if(obj != null &&  obj instanceof Achievement){
    Achievement achievement = (Achievement) obj;
    achievement.getName().equals(this.getName());
}
return false;
}
@测试
公共无效遗嘱执行情况(){
Player=getPlayer();
列出玩家成就=成就管理者。检查玩家成就(准备玩家统计(玩家));
资产质量(3,PlayerAchievents.size());
AssertArrayQuals(PlayerAchievents.toArray(新成就[PlayerAchievents.size()),
新成就【】{新布鲁斯罗沃德(),新神枪手沃德(),新快速杀手沃德()});
}
导致错误的原因:

@Test
    public void testAchievementsSize(){
        Player player = getPlayer();
        List<Achievement> playerAchievements = achievementManager.checkForPlayerAchievements(preparePlayerStatistics(player));
        assertEquals(3,playerAchievements.size());
        assertArrayEquals(playerAchievements.toArray(new Achievement[playerAchievements.size()]),
                new Achievement[]{new BruiserAward(),new SharpShooterAward(),new FastKillerAward()} );

    }
数组首先在元素[0]处不同;应为:com.techdiscus.acquisition.bruseRaward,但应为:com.techdiscus.acquisition.bruseRaward
预期:com.techdiscus.acquisition.bruceraward
实际:com.techdiscus.acquisition.bruceraward

@测试
公共无效遗嘱执行情况(){
Player=getPlayer();
列出玩家成就=成就管理者。检查玩家成就(准备玩家统计(玩家));
资产质量(3,PlayerAchievents.size());
AssertArrayQuals(PlayerAchievents.toArray(),
新成就【】{新布鲁斯罗沃德(),新神枪手沃德(),新快速杀手沃德()});
}
引起

   @Test
    public void testAchievementsSize(){
        Player player = getPlayer();
        List<Achievement> playerAchievements = achievementManager.checkForPlayerAchievements(preparePlayerStatistics(player));
        assertEquals(3,playerAchievements.size());
        assertArrayEquals(playerAchievements.toArray(),
                new Achievement[]{new BruiserAward(),new SharpShooterAward(),new FastKillerAward()} );

    }
数组首先在元素[0]处不同;应为:com.techdiscus.acquisition.bruseRaward,但应为:com.techdiscus.acquisition.bruseRaward
预期:com.techdiscus.acquisition.bruceraward
实际:com.techdiscus.acquisition.bruceraward
通常情况下, 答案是注意你写的代码

看看你的问题中包含的equals方法。 回答这个问题:如果这是真的,返回什么值成就的null和obj实例

一旦你回答了这个问题,
解决问题。

你能给我们看一下
CheckforPlayerAcevents
方法代码吗?删除的答案似乎正确。检查BruserAward课程的equals方法。我真傻,这次错过花了我几个小时。。但是谢谢你给我看。
@Test
    public void testAchievementsSize(){
        Player player = getPlayer();
        List<Achievement> playerAchievements = achievementManager.checkForPlayerAchievements(preparePlayerStatistics(player));
        assertEquals(3,playerAchievements.size());
        assertArrayEquals(playerAchievements.toArray(new Achievement[playerAchievements.size()]),
                new Achievement[]{new BruiserAward(),new SharpShooterAward(),new FastKillerAward()} );

    }
arrays first differed at element [0]; expected: com.techdisqus.achievement.BruiserAward<Bruiser> but was: com.techdisqus.achievement.BruiserAward<Bruiser>
Expected :com.techdisqus.achievement.BruiserAward<Bruiser> 
Actual   :com.techdisqus.achievement.BruiserAward<Bruiser>
   @Test
    public void testAchievementsSize(){
        Player player = getPlayer();
        List<Achievement> playerAchievements = achievementManager.checkForPlayerAchievements(preparePlayerStatistics(player));
        assertEquals(3,playerAchievements.size());
        assertArrayEquals(playerAchievements.toArray(),
                new Achievement[]{new BruiserAward(),new SharpShooterAward(),new FastKillerAward()} );

    }
arrays first differed at element [0]; expected: com.techdisqus.achievement.BruiserAward<Bruiser> but was: com.techdisqus.achievement.BruiserAward<Bruiser>
Expected :com.techdisqus.achievement.BruiserAward<Bruiser> 
Actual   :com.techdisqus.achievement.BruiserAward<Bruiser>