Как сравнить 2 объектных массива с помощью массива Assert в Junit - PullRequest
0 голосов
/ 01 ноября 2018

Я новичок в Java и Junit. У меня есть постановка задачи, чтобы написать контрольный пример для тестирования метода "findRoleWithMaxPrivilege", в котором необходимо передать массив ролей. По сути, этот метод должен возвращать массив ролей, где роль имеет максимальные привилегии. Пожалуйста, найдите ниже метод и соответствующие подробности тестового примера. Но этот тестовый сценарий возвращает ошибку.

public class Privilege {
    String name;
public class Role extends RoleBO{
    private String name;
    private Privilege[] privilege;
    public Role(String name, Privilege[] privilege) {
        super();
        this.name = name;
        this.privilege = privilege;
    }
public class RoleBO {
public RoleBO(){}
public Role[] findRoleWithMaxPrivilege(Role[] role)
{
    int count,i;
    int c=0;
    this.sortRoleByName(role);
    count = this.CountMaxNoOfPrivilege(role);
    Integer no = this.countNoofMaxPrivilege(role,count);
    Role[] rol = new Role[no];
    for( i = 0;i < role.length;i++)
        if(role[i].getPrivilege().length == count)
            rol[c++] = role[i];
    return rol;
}

*

public class RoleJUnit {
    RoleBO role;
    @Before
    public void objectCeration() {
         role = new RoleBO();
    }
    @Test
    public void testFindRoleWithMaxPrivilege() {
        Role[] input = new Role[3];
        Privilege[] privil = new Privilege[5];
        privil[0] = new Privilege("A");
        privil[1] = new Privilege("SA");
        privil[2] = new Privilege("M");
        privil[3] = new Privilege("SM");
        privil[4] = new Privilege("PA");
        input[0] = new Role("Pavi",privil);

    Privilege[] privil2 = new Privilege[3];
    privil2[0] = new Privilege("A");
    privil2[1] = new Privilege("SA");
    privil2[2] = new Privilege("M");
    input[1] = new Role("Heidi",privil2);

    Privilege[] privil3 = new Privilege[2];
    privil3[0] = new Privilege("A");
    privil3[1] = new Privilege("SA");
    input[2] = new Role("Dora",privil3);

    Role[] actual = role.findRoleWithMaxPrivilege(input);

    Role[] expected = new Role[1];
            Privilege[] Privilexpected = new Privilege[5];
            Privilexpected[0] = new Privilege("A");
            Privilexpected[1] = new Privilege("SA");
            Privilexpected[2] = new Privilege("M");
            Privilexpected[3] = new Privilege("SM");
            Privilexpected[4] = new Privilege("PA");
            expected[0] = new Role("Pavi",Privilexpected);
    Assert.assertArrayEquals("Mismatch",expected, actual);
}

1 Ответ

0 голосов
/ 09 ноября 2018

Попробуйте использовать библиотеку Hamcrest для подтверждения коллекций. Hamcrest содержит встроенную коллекцию спичек. Эта ссылка может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...