Как вывести более одной строки в junit - PullRequest
0 голосов
/ 18 апреля 2011

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

     import scala.collection.JavaConversions._

     def Assert_Messages (
        expected : Int,
        actual   : java.util.List [String])
     {
        if (expected != 0 && actual.size == 0)
        {
           junit.framework.Assert.fail ("An expected error message was not reported.")
        }
        else if (expected != actual.size)
        {
           actual foreach (junit.framework.Assert.fail (_))
        } // if
     } // Assert_Messages

Но при этом выводится только первое сообщение, так как junit.framework.Assert.fail не возвращается.Кто-нибудь получил для меня идею, которая не связана с уродливым StringBuffer?

JUnit установлен, поскольку тест должен работать на Android.Я с нетерпением жду, чтобы узнать что-то новое и изящное.

1 Ответ

2 голосов
/ 18 апреля 2011

Вы можете попробовать junit.framework.Assert.fail(actual.mkString("; ")). Замените "; " на то, что вы хотите использовать в качестве разделителя; если вы хотите иметь возможность восстановить исходную последовательность строк, обязательно избегайте символов, которые сталкиваются с вашей разделяющей строкой, например, с обратной косой чертой или чем-то.

Некоторые побочные замечания:

  • в данном конкретном случае это может не иметь большого значения, но вместо проверки someCollection.size == 0 рекомендуется проверять someCollection.isEmpty. На Scala List, size - это операция O ( n ), если n - размер вашего списка; isEmpty - это O (1).
  • Вам не нужно явно писать префикс scala., когда вы импортируете вещи из пакета scala (если нет неоднозначностей), поэтому import collection.JavaConversions._ будет работать хорошо.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...