В классе ClassToTest.java
у меня есть следующий метод:
private Optional<SomeObject> getObjById(String id) {
Optional<SomeObject> obj = someApi.getById(id);
if (!obj.isPresent()) {
throw new IllegalArgumentException("Invalid id: " + id);
}
return obj;
}
Закрытый метод getObjById(String id)
вызывается в открытом методе callMyMethod
из ClassToTest
.
IЯ хочу написать два тестовых сценария - один, когда идентификатор не указан, и я выдаю ошибку.Это было легко, я написал это и сдал мой тест:
@Test(expected = IllegalArgumentException.class)
public void shouldThrowAnErrorIfIdIsNotPresented(){
Object1 obj1 = new Object1(");
testee.callMyMethod(obj1);
}
Другой случай сложен для меня.Я хочу проверить, что если идентификатор присутствует, он не вернет ошибку.Услуга someApi
смоделирована и введена внутрь ClassToTest
.Он имеет следующий API:
@Service
public class SomeApi {
@Autowired
private ObjectManager objectManager;
@Autowired
private OtherApi otherApi;
public SomeObject get(String id) {
return objectManager.fetch(id, OtherParam...);
}
public Optional<SomeObject> getByName(String name) {
return objectManager.fetchAll(someParams)
.findFirst();
}
public Set<Obj> findByOtherParam(OtherParam param) {
.................
}
}
}
В основном только добытчики.Любые идеи приветствуются!