Я написал простой Java script ниже, чтобы узнать больше о TDD, IntelliJ и Java.
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import static org.junit.matchers.JUnitMatchers.both;
public class JUnit_Dummy {
private StringJoiner joiner;
private List<String> strings;
@Before
public void setUp() throws Exception {
strings = new ArrayList<String>();
joiner = new StringJoiner();
}
....
@Test
public void shouldContainBothStringsWhenListIsTwoStrings() {
strings.add("one");
strings.add("two");
assertThat(joiner.join(strings),
both(containsString("A")).
and(containsString("B")));
}
}
_____________
import java.util.List;
public class StringJoiner {
public String join(List<String> strings) {
if(strings.size() > 0) {
return (strings.get(0);
}
return "";
}
}
Я пытаюсь использовать метод containsString внутри утверждения, но IntelliJ продолжает говорить мне, что он "не может разрешить метод containsString (java.lang.String)". Это несмотря на то, что jUnit docs (http://junit.sourceforge.net/javadoc/org/junit/matchers/JUnitMatchers.html#containsString (java.lang.String)) скажите, что этот метод принимает параметр String.
Я попытался заменить различные операторы импорта, в том числе следующие:
import static org.hamcrest.Matcher.containsString;
import static org.hamcrest.Matcher.*;
import static org.hamcrest.CoreMatchers.*;
Лучшее, что я получаю, это grey-out-import, говорящий мне, что инструкция import не используется. Не уверен, в чем проблема, любая помощь будет оценена.
UPDATE:
Вот точная ошибка компилятора:
java: cannot find symbol
symbol: method containsString(java.lang.String)
location: class JUnit_Dummy