powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы для тестов по java
16 сообщений из 941, страница 38 из 38
Вопросы для тестов по java
    #39869994
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0asv79,

По сути ты передаешь ее в какой то Map-е, в каком то scope (page,request,session,application). Если ты корректно передашь и в "правильном" месте будешь искать, то найдешь.
У меня лежит в сесиии объект этот с ключем "test"

например в тимплейте я споконо ${test.id} -его беру
а вот в редиректе не хочет)ну не хочет значит просто прибавим его к стринг строке)
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870067
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот собственно и все)

Отсталось добавить юзеров и авторизацию по соц.сетям
юзер рум с историей проождения и можно выкладывать на боевые сервера
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870226
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79Ну вот собственно и все)У Р А А А!

asv79Отсталось добавитьблиииинннн)
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870432
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,да а чего там) у меня уже лежит готовая реализация прикручивания юзеров к чему угодно))

но пока я решил заняться тестами и хочу вот это свое приложение покрыть полностью тестами
1.юнит
2.интерграционные
3.E2E
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870436
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала я хочу написать простой юнит тест вот для этого простого контроллера,который просто добавляет в базу ответ к существующему ворпосу
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
package com.alekseev.Javatesting.Controller;


import com.alekseev.Javatesting.Entity.Answer;
import com.alekseev.Javatesting.Repository.AnswerRepo;
import com.alekseev.Javatesting.Repository.QuestionRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class addAnswerController {
    @Autowired
    QuestionRepo questionRepo;
    @Autowired
    AnswerRepo answerRepo;

    @GetMapping("/addanswer")
    public String editAnsw(){
        return "addAnswer";
    }

    @PostMapping("/addanswer")
    public String editAnswer(
            @RequestParam(name = "idQ")Long idQ,
            @RequestParam(name = "answ")String answ,
            @RequestParam(name ="b",required = false)String b
    ){
        Answer a=new Answer();
        a.setQuestion(questionRepo.findById(idQ).get());
        a.setAnswerText(answ);
        if(b==null){
            a.setMatch(false);}
        else {a.setMatch(true);}
        answerRepo.save(a);
        return "redirect:/addanswer";


    }
}
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870445
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Немного сократил этот контроллер

вот так лучше выглядит ,пусть спринг сам ищет в репозитории вопросы
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
@Controller
public class addAnswerController {
    @Autowired
    AnswerRepo answerRepo;

    @GetMapping("/addanswer")
    public String editAnsw(){
        return "addAnswer";
    }

    @PostMapping("/addanswer")
    public String editAnswer(
            @RequestParam(name = "idQ")Question q,
            @RequestParam(name = "answ")String answ,
            @RequestParam(name ="b",required = false)String b
    ){
        Answer a=new Answer();
        a.setQuestion(q);
        a.setAnswerText(answ);
        if(b==null){
            a.setMatch(false);}
        else {a.setMatch(true);}
        answerRepo.save(a);
        return "redirect:/addanswer";
    }
}
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870456
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
@Controller
public class addAnswerController {

    @PostMapping("/addanswer")
    public String editAnswer(
            @RequestParam(name = "idQ")Question q,
            @RequestParam(name = "answ")String answ,
            @RequestParam(name ="b",required = false)String b
    ){
        Answer a=new Answer();
        a.setQuestion(q);
        a.setAnswerText(answ);

        // тут можно заменить 
        if(b==null){
            a.setMatch(false);}
        else {a.setMatch(true);}

        // на так
        a.setMatch(b != null);

        answerRepo.save(a);
        return "redirect:/addanswer";
    }
}
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870476
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
@Controller
public class addAnswerController {

    @PostMapping("/addanswer")
    public String editAnswer(
            @RequestParam(name = "idQ")Question q,
            @RequestParam(name = "answ")String answ,
            @RequestParam(name ="b",required = false)String b
    ){
        Answer a=new Answer();
        a.setQuestion(q);
        a.setAnswerText(answ);

        // тут можно заменить 
        if(b==null){
            a.setMatch(false);}
        else {a.setMatch(true);}

        // на так
        a.setMatch(b != null);

        answerRepo.save(a);
        return "redirect:/addanswer";
    }
}


это да,спасибо)никак не могут от этих проклятых ифов уйти)))
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870598
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vas0,
правильно ли я делаю как думаешь?

я хочу принять в этот контроллер id
по нему найти вопрос и записать ответ в базу

первое что я должен сделать
это
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@ExtendWith(MockitoExtension.class)
public class addAnswerControllerTest {

    @Mock
    QuestionRepo questionRepo;
    @Mock
    AnswerRepo answerRepo;

    @InjectMocks
    addAnswerController addAnswerController;

    @BeforeEach
     void setUp(){
    }



тоесть я беру два репозитория и мокаю их,потом инжекчу в этот контроллер


далее я так понимаю я должен создать руками в методе setUp этот вопрос вроде и хрен знает что там дальше))
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870655
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод аннотированный @BeforeEach вызывается перед каждым тестовым методом.
Его можно не использовать вообще. Его включают тогда когда в тестах есть рутина.
Подготовительные действия. Например - почистить таблички в БД.
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870699
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решил я начать с малого

взял нарисовал контроллер

Код: java
1.
2.
3.
4.
5.
6.
7.
    @PostMapping("/addanswer")
    public ModelAndView editAnswer (){
        ModelAndView model=new ModelAndView();
        List<Question> q=questionRepo.findAll();
        model.addObject("answer",q);
        return model;
    }


написал к этому контроллеру тест

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
package com.alekseev.Javatesting;

import com.alekseev.Javatesting.Controller.addAnswerController;
import com.alekseev.Javatesting.Entity.Question;
import com.alekseev.Javatesting.Repository.QuestionRepo;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.web.servlet.ModelAndView;

import java.util.Arrays;
import java.util.List;

import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;

@ExtendWith(MockitoExtension.class)
public class addAnswerControllerTest {

    @Mock
    private QuestionRepo questionRepo;


    @InjectMocks
    addAnswerController addAnswerController;

   private List<Question>listQ= Arrays.asList(new Question("test1"),new Question("test2"));


    @BeforeEach
     public void setUp(){
       when(questionRepo.findAll()).thenReturn(listQ);

    }
    @Test
   public void sss(){
        ModelAndView mv=addAnswerController.editAnswer();
       assertThat(mv.getModel()).extracting("answer").contains(listQ);
    }

}





и получаю nullpointer вот в этой строчке ModelAndView mv=addAnswerController.editAnswer();
похоже либо чо то с версиями напутано либо яхз
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870724
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ведь правльно ж все написано

беру делаю мок из репозитория инжекчу его в контроллер
переопределяю нужный мне метод мока

что за нулл поинтер не пойму
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870727
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно выглядит. Перепиши по другому.

Код: java
1.
2.
@InjectMocks
    addAnswerController addAnswerController;
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39870784
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСтранно выглядит. Перепиши по другому.

Код: java
1.
2.
@InjectMocks
    addAnswerController addAnswerController;


почему странно?
есть контроллер
есть репо
репо мок
инжекчу репу в контроллер

перепоределяю метод
я понимаю что где то тут засада
что контроллер не видит репу
надо разбираться почему
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39871152
MAPA3OT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79, есть у меня стойкое подозрение, что вся магия кроется в методе initMocks
Дока
...
Рейтинг: 0 / 0
Вопросы для тестов по java
    #39871168
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MAPA3OTasv79, есть у меня стойкое подозрение, что вся магия кроется в методе initMocks
Дока
все оказалось прозаичнее
просто нужно было добавить в тест класс стартер
Код: java
1.
@RunWith(MockitoJUnitRunner.class)


и все сразу заработало чудесным образом

@InjectMocks в данном случае делал именно то,что от него и требовалось создавал объект и инжектил туда все поля,отмеченые @Mock
...
Рейтинг: 0 / 0
16 сообщений из 941, страница 38 из 38
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопросы для тестов по java
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]