есть интерфейс
public interface Authorization {
UserDto authorization(UserDto userDto) throws IOException,NullPointerException;
}
его реализация
@Component
public class AuthorizationImpl extends RestClient implements Authorization {
private final String url = "/share/page/dologin";
private static ObjectMapper om = new ObjectMapper();
public UserDto userDto ;
protected Response responce;
public UserDto authorization(UserDto user) {
responce =
given().contentType("application/x-www-form-urlencoded;charset=UTF-8").baseUri(RestClient.baseUri).body(user)
.when().post(url);
user.setJSESSIONID(responce.getSessionId());
System.out.println(responce.getSessionId());
return user;
}
}
сам тест
@ContextConfiguration(locations = "ru.sibintek.ksed.testBeans.xml")
public class ApprovalCart2layers {
private UserDto userDto;
@Autowired
protected AuthorizationImpl auth;
@Test
public void testName() throws IOException,NullPointerException {
UserDto mike = new UserDto();
mike.setPassword("111");
mike.setLogin("111");
auth.authorization(mike);
}
}
при запуске - NullPointerException
помогите разобраться почему
да я смотрела этот туториал, но тут пример к конструктору, а мне нужен как раз @Autowired метода
Noksa
(Alexandr D.)
20.Май.2019 09:52:32
#4
У вас вообще инъекция через поле, что, если мне не изменяет память, является не очень подходом.
olyv
20.Май.2019 09:59:40
#5
a gde @Configuration
? ili eto SPring Boot?
olyv
20.Май.2019 10:26:03
#7
ia ne rabotal s xml configami, no na naskolko ia ponimaiu iz (Spring MVC: <context:annotation-config> vs <context:component-scan> - HowToDoInJava ) context:annotation-config
ne registriruet java beans. To est’ stoit poprobovat’ context:component-scan
да, я пробовала такой вариант - <context:component-scan base-package=“ru.sibintek.ksed” />
мне кажется я упускаю какую-то фундаментальную мелочь
Не работал с этим, но из ошибки возникает такое ощущение, что проблема в логгере.
лишний бин - он нигде не использовался
решила проблему с логером , вот что осталось :
olyv
20.Май.2019 11:03:57
#13
togda zachem AuthorizationImpl extends RestClient
?
ne ochen’ iasno pochemu spring ne mozet swiazat’ AuthorizationImpl
. Mozno ssylku na github?
не увидел у вас @RunWith(SpringJUnit4ClassRunner.class)
без раннера, вроде бы, не будет автовайрить
1 лайк
ну тогда
@Test
@ContextConfiguration(...)
public class ApprovalCart2layers extends AbstractTestNGSpringContextTests {
}
не?
В общем, мысль в том, что в для TestNG пока никто не сказал, что спринг должен напрячься и что-то автовайрить
1 лайк
стало лучше но
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘ru.sibintek.ksed.apitest.Scenario.ApprovalCart2layers’: Unsatisfied dependency expressed through field ‘auth’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type ‘ru.sibintek.ksed.WebApi.AuthorizationImpl’ available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired (required=true)}
во, проблема уже спринговая)
с xml-конфигурациями мало работал.
Если предположить, что в самом xml’е классы указаны верно, то я бы проверял, что корректно указан путь в @ContextConfiguration(locations = "ru.sibintek.ksed.testBeans.xml")
А мож ну его и сделать класс?)
@ContextConfiguration (classes=TestBeans.class)
кста, выглядит так, что у вас в xml бин restClient не до конца написан
атрибут class
а как в TestBeans.class хранить бины?