Модуль модульного тестирования для сравнения бобов - PullRequest
0 голосов
/ 21 мая 2010

Есть ли хорошие рамки для сравнения целых объектов?

Теперь я делаю

assertEquals("ha@gmail.com", obj.email);
assertEquals("5", obj.shop);

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

Ответы [ 5 ]

1 голос
/ 29 марта 2011

Я бы пошел на спички подколенного сухожилия. Они позволяют мне писать такой код:

assertThat(obj, hasProperty("email", equalTo("ha@gmail.com")));
1 голос
/ 05 июня 2010
1 голос
/ 24 мая 2010

Вы также можете реализовать сопоставимый интерфейс.

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Comparable.html

1 голос
/ 21 мая 2010

Если исходить из теста 1, 1 утверждать, если у вас есть каждое утверждение в своем собственном тесте, вы будете знать, если один или оба из них провалились из-за того, что было 1 или 2 неудачных теста.

@Test
public void TestEmail()
{
    obj = GetTestObject();
    assertEquals("ha@gmail.com", obj.email);
}

@Test
public void TestShop()
{
    obj = GetTestObject();
    assertEquals("5", obj.shop);
}

очевидно, что вам нужно перенести настройку объекта в метод, чтобы он не выполнялся в методе настройки теста, и иметь переменную класса.

Если вы действительно хотите проверить, установлены ли все свойства в одном тесте:

@Test
public void TestAllProperties()
{
    obj = GetTestObject(); 
    bool testResult=true;
    string failureString;
    if "ha@gmail.com".equals( obj.email) == false
    {
         testResult=false;
         failureString+="email was different";
    }
    if "5".equals( obj.shop) == false
    {
         testResult=false;
         failureString+="shop was different";
    }
    assertTrue(testResult,failurestring);
}

но я не уверен, что это дает тебе на самом деле.

Но если вы действительно хотите сравнить равенство всех объектов, переопределите метод equals (не забывая также и о getHashCode) и выполните проверку на равенство там. в конце концов это то, что для ...

Если вы хотите получить список неправильных полей, вы можете сделать так, чтобы метод equals заполнял внутренний список, который вы могли бы запросить, если проверка на равенство не прошла, чтобы получить список полей с ошибками при последней проверке равенства. Хотя на самом деле не думаю, что это хорошая идея.

0 голосов
/ 21 мая 2010

Если вы хотите проверить равенство объектов, то вам обязательно нужно реализовать equals () и проверить с помощью assertEquals (), но в противном случае Сэм верен, одно утверждение на тест

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