Вы можете использовать eq () matcher для совпадения с точной строкой:
when(myMock.lookup(eq("abc"), anyString(), anyString())
.thenReturn(ImmutableList.of(...someItems))
when(myMock.lookup(eq("def"), anyString(), anyString())
.thenReturn(ImmutableList.of(...otherItems))
Если вам нужно сопоставить только некоторую часть строки, вы можете использовать match () (передавая в него регулярное выражение):
when(myMock.lookup(matches(".*abc.*"), anyString(), anyString())
.thenReturn(ImmutableList.of(...someItems))
when(myMock.lookup(matches(".*def.*"), anyString(), anyString())
.thenReturn(ImmutableList.of(...otherItems))
Об добавлении: если ваша строка хранится в переменной, вы можете просто использовать конкатенацию строк:
String str = "abc";
when(myMock.lookup(matches(".*" + str + ".*"), anyString(), anyString())
.thenReturn(ImmutableList.of(...someItems))
или (если он хранится внутри поля объекта) - вот так:
MyObject myObject = new MyObject();
myObject.setLine("abc");
when(myMock.lookup(matches(".*" + myObject.getLine() + ".*"), anyString(), anyString())
.thenReturn(ImmutableList.of(...someItems))