Могу ли я заставить Intellij Idea 11 IDE знать о assertEquals и других методах JUnit в модульных тестах Grails 2.0.x? - PullRequest
1 голос
/ 15 марта 2012

Мне очень странно, что при такой превосходной интеграции Grails Idea не распознает стандартные методы утверждения JUnit в модульных тестах Grails. Я создал новый проект и создал один класс домена с соответствующим тестом, чтобы убедиться, что это не что-то странное в моем более крупном проекте. Даже если я добавлю аннотацию @Test, IDE не увидит никаких методов подтверждения

@TestFor(SomeDomain)
class SomeDomainTests {

    @Test //thought adding this, not needed for Grails tests, would help but it doesn't
    void testSomething() {
       assertEquals("something", 1, 1);  //test runs fine, but IDE thinks this method and any similar ones don't exist
    }
}

Ответы [ 3 ]

5 голосов
/ 15 марта 2012

Я создал проблему в багтрекере IntelliJ: http://youtrack.jetbrains.com/issue/IDEA-82790. Это будет исправлено в IDEA 11.1.0

В качестве обходного пути вы можете добавить «import static org.junit.Assert. *» Вimport.

Примечание: использование "assert 1 == 1: 'message'" предпочтительнее, чем "assertEquals ('message', 1, 1)" в коде groovy.

0 голосов
/ 15 марта 2012

С аннотацией @TestFor AST добавит методы в ваш тестовый класс, и IDEA не перехватит эти методы.

У вас есть два варианта:

  1. Сделать тестовый класс расширяемым GrailsUnitTestCase.
  2. Добавить динамический метод в ваш тестовый класс. Add dynamic method to class
0 голосов
/ 15 марта 2012

Идея имеет проблемы, если вы используете 'def' для определения переменной (поэтому ее тип неизвестен), а затем вы пытаетесь передать ее в метод Java, который строго типизирован.Поскольку он не может вывести тип.

Поэтому он выдаст сообщение со словами о том, что «нет метода assertEquals (), который принимает аргументы с типом String, null, null».

Я бы не ожидал этого сообщения в приведенном вами примере (потому что вы используете целые числа напрямую, а не динамически типизированную переменную), но я подумал, что вы могли его пропустить, когда пытались создать простой пример кода для вопроса.

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