Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Способы проверки класса на соотвествие ТЗ  [new]
Pcrepair
Member

Откуда:
Сообщений: 759
Добрый день.
При разработке ПО под Delphi, для контроля работы функций и процедур (входные данные -> выходные данные) Я делаю отдельную десктопную программу в виде формы с окнами ввода-вывода данных, кнопкой "Старт" и функцией или процедурой в обработчике кнопки.

Такой подход позволяет проверить работоспособность кода функции до использования в кода программе, или службе и избежать множества головняков, когда ошибки накладываются на ошибки. в Delphi такой подход (расчленение кода на элементарные подпрограммы) считается единственно правильным

В Java нет функций и процедур но есть классы с методами и полями что приблизительно все то же самое. в букварях также пишут о необходимости расчленения кода на элементарные подпрограммы. соответственно хотелось с удобствами проверять работоспособность класса.
cmd, javac, jar и прочее тормозят работу, гораздо проще нажать на кнопку на форме программы и получить результат, к тому же вводить данные в консоль не очень удобно

Вопросы(работа под Windows):
1. где то читал что есть IDE позволяющие запускать java код, типа как в DElphi, прямо из редактора. никто не в курсе что это, удобное в использовании?
2. допустим есть откомпилированный класс (file.jar компиляция через Maven) и файлы с зависимостями в комплекте. как все это запустить с передачей входных данных и выводом результата но не в консоли а в окна ввода-вывода, типа десктопная программа, хорошо бы скрестить форму из Delphi с запуском в ней file.jar
3. может есть какие то ещё варианты

Заранее всем спасибо за ответы на заданные вопросы
19 апр 21, 12:47    [22310881]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,
Можно ссыль на дельфи топики?
Я на нем писал и ничего такого там не было)
19 апр 21, 13:22    [22310910]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,
Пойми. Весь твой опыт с десктопом совершенно не катит с java.
Java это веб проекты в основном.
Поэтому требования "быстро запустить кусок кода" тут не катят совершенно.
19 апр 21, 13:26    [22310916]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,
присоветуйте самый простой и интуитивный java-фреймворк для windows(10) плиз
19 апр 21, 13:28    [22310919]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,
>cmd, javac, jar и прочее тормозят работу,
== это тебе в дельфи дельфисты сказали? Сознавайся)))))
19 апр 21, 13:32    [22310923]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
chpasha
Member

Откуда:
Сообщений: 10846
интуитивно мне кажется, что ТС говорит про тесты, но это не точно (с)
19 апр 21, 14:12    [22310967]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
chpasha,
Да. Но у него тесты это формочка утилита в ГУИ.
А тестов сприг бут у него крыша поедет
19 апр 21, 14:31    [22310988]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
Как в Delphi, так и в Java это все решать нужно совершенно по-другому. Для проверки нашего кода мы его должны протестировать и есть два способа:
1. Ручное тестирование - запустить приложение и прокликать (то что ты делал под Delphi - это эдакий подвид ручного тестирования)
2. Автоматизированное тестирование - написать тестовый код который будет вызывать production код и проверять что он правильно выполнил свои обязанности.

Оба вида тестирования необходимы. С ручным наверно все понятно, а вот для автоматизированного почитай про JUnit. Когда прийдется выбирать - выбирай лучше JUnit4, а не JUnit5. Последний намного сложней, а пользы тебе от него не будет скорей всего.

Также тесты можно делить по тому как много они инициализируют для своей работы:
- Unit Tests - могут работать с классом или несколькими классами, не используют внешние ресурсы (БД, удаленные сервисы и т.д.)
- Component Tests (еще называют Integration Tests, тут увы хорошего названия нет) - поднимают прям приличный кусок приложения, возможно используют базу данных
- System Tests - мы полностью запускаем приложение и используем внешние возможности (UI, API) для его проверки.

Начни с 1ого, потом можно будет пробовать 2ое. 3е возможно тебе никогда и не нужно будет.

Более подробно:
1. Про классификацию тестов
2. Как какие тесты писать
3. Как писать production код чтоб его можно было тестировать

Сообщение было отредактировано: 19 апр 21, 14:56
19 апр 21, 14:57    [22311020]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Stanislav Bashkyrtsev,
Добавлю что есть еще Архитектурное тестирование.
Это MVC, MVP, MVVP, MV*
КЛАСС ФУНКЦИОНАЛА ОТДЕЛЕН ОТ ГУИ
19 апр 21, 15:02    [22311025]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
PetroNotC Sharp, понятия "архитектурное тестирование" не знаю.. MVC и иже с ними - это подходы для написания UI логики, связывания ее с бизнес логикой. Какие-то из них способствуют модульному тестированию и ставят на это большой акцент (MVP), какие-то.. ну просто просто такая вот архитектура, кому-то показалась удобней, безотносительно тестирования.
19 апр 21, 15:14    [22311033]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Stanislav Bashkyrtsev,
Ну, термин конечно не ГОСТ'овский, но помогает цели - писать устойчивый код.
Автор вместо слово тест употребил Работоспособный код)))
19 апр 21, 15:20    [22311043]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Stanislav Bashkyrtsev,

>кому-то показалась удобней,
= были четкие цели - уменьшить связанность для....
19 апр 21, 15:22    [22311044]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Pcrepair
Member

Откуда:
Сообщений: 759
НУ хорошо, еще раз
1. есть некий откомпилированный в file.jar класс(несколько + импорт)
2. у класса есть поля (два для ввода строк и одно для вывода строки) и методы (да неважно какие, их как раз и нужно сочинить и проверить)
нужна форма с полями ввода и вывода и кнопка запуска
- ввожу строки в поля ввода
- нажимаю кнопку и в поле вывода получаю или результат или текст исключения
если исключение дорабатываю класс в редакторе, пакую (МАВЕН) и опять по кругу.
Да, возможно ИДЕ типа иклипс все такое делает, но пока на изучение ИДЕ нет времени и НЕОБХОДИМОСТИ. Я просто разбираюсь с тем что есть ЖАБА!
Так что? есть какие то варианты по простому писать код в текстовом редакторе и по простому его тестировать
вот так понятно что мне нужно?
19 апр 21, 18:53    [22311182]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
Pcrepair

нужна форма с полями ввода и вывода и кнопка запуска
- ввожу строки в поля ввода
- нажимаю кнопку и в поле вывода получаю или результат или текст исключения

В чем проблема? Что не получилось?

Если вообще ничего не получилось, то сколько платите денег. Но это лучше в подфорум https://www.sql.ru/forum/job
19 апр 21, 18:55    [22311183]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9651
AFAIK для тестирования SOAP такие программы есть

Но для тестирования отдельного класса/метода таким бредом вряд ли кто занимается. Для этого есть JUnit (о котором уже говорили) и никакие интерактивные формы нафиг не сдались.
19 апр 21, 19:00    [22311187]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Pcrepair
Member

Откуда:
Сообщений: 759
автор
Leonid Kudryavtsev,
В чем проблема? Что не получилось?
Если вообще ничего не получилось, то сколько платите денег. Но это лучше в подфорум https://www.sql.ru/forum/job


да все получится, не надо так волноватьси
денег? ахахаха
19 апр 21, 19:08    [22311195]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,

Есть javaFX. Иди помучайся хоть денёк. Потом приходи.
19 апр 21, 19:18    [22311204]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 142
Pcrepair

нужна форма с полями ввода и вывода и кнопка запуска
- ввожу строки в поля ввода
- нажимаю кнопку и в поле вывода получаю или результат или текст исключения
если исключение дорабатываю класс в редакторе, пакую (МАВЕН) и опять по кругу.
Написать модульный тест намного быстрей и проще. И запустит его Maven без необходимости паковать и работать с jar'кой. Собсно это основная причина почему твой подход с формочками никто не использует - это просто слишком сложно и медленно. Да и работать будет только для простых случаев. Когда классов сотни-тысячи и для тестирования нужно инициализировать десятки-сотни объектов, то формочку уже так просто не создать..

Я не думаю что тебе кто-то другой ответ даст. Поэтому если хочешь продолжать делать по-своему, то тут никто не сможет помочь. Я за 13 лет работы ни разу не слышал чтоб кто-то создавал формочки для тестирования.

Сообщение было отредактировано: 19 апр 21, 19:14
19 апр 21, 19:21    [22311205]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Pcrepair
Member

Откуда:
Сообщений: 759
автор
Stanislav Bashkyrtsev,
Написать модульный тест намного быстрей и проще


Знаю, буквари читал. мне нужно попробовать покрутить повертеть. по простому
и по моему - по простому это так:
- написать код класса в текстовом редакторе (уже все работает)
- упаковать в .жар через МАВЕН в консоли(уже все работает)
- подсунуть .жар в ГУИ, ввести данные нажать батон получить результат
если результат не тот все по новой
при этом файл.жава может не иметь метода МЕЙН и быть набором методов и полей

еклипс имеет множество настроек, возможностей, вариантов.
очень не хочется забивать голову потенциально не нужным хламом
19 апр 21, 19:49    [22311223]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
fixxer
Member

Откуда:
Сообщений: 835
Уже пять человек пришло и сказало про модульные тесты. А вы упираетесь зачем-то. То, что описываете это не быстро. Это очень долго. Нужно что-то собирать, что-то запускать, куда-то тыкать, что-то вводить. Вместо того чтобы просто написать пару строчек вызова класса и запустить maven test. Да, придется разобраться, но уж извольте.
19 апр 21, 20:21    [22311232]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,
Думаю вас и в дельфи никто не понял с таким упрямством.
19 апр 21, 20:32    [22311235]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
awt.Robot
20 апр 21, 06:35    [22311301]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
faustgreen
Member

Откуда:
Сообщений: 473
Pcrepair,
Код в текстовом редакторе, проверка работоспособности класса в формочке, ... Можно конечно и зубной счеткой двор подметать, но для этого есть специальные инструменты, хотя бы метла. Потрать немного времени на изучение инструментария, это потом окупится.

Для написания кода, возьми IDE -шку, например тот же эклипсе. Из очевидных плюсов:
- проверка синтаксиса (часть ошибок ты будешь видеть уже на этапе написания кода);
- синтаксис помощник (сокращает время на написание кода, так как иде тебе много чего будет подсказывать).

Для тестирования - Junit
- Пишешь несколько тестов, запускать можешь все разом в том же maven-е;
- Есть расширенные возможности (выполнение теста при условии, в определенной среде, многократный запуск и прочее).

Тебе уже несколько человек ответили, а ты все на своем стоишь.

Если уж решил делать по своему, то (по моему мнению) тебе проще будет писать код в иде, и там же его тестировать:
Пишешь класс, например, калкулятор:
public class Calc {
	
	private int a;
	private int b;
	
	public Calc(int a, int b) {
		this.a = a;
		this.b = b;
	}
	
	public int add () {
		return (a + b);
	}
	public int subtract () {
		return (a - b);
	}	
	
	public int multiply () {
		return (a * b);
	}
	public double devide () {
		return (a / b);
	}
}


а под него пишешь класс, где будешь тестировать его функционал:
public class TestCalc {
	public static void main(String[] args) {
		
		int FIRST_ARG = 20;
		int SECOND_ARG = 10; 
		
		Calc calc = new Calc(FIRST_ARG, SECOND_ARG);
		
		System.out.println("Addition: " + calc.add());
		System.out.println("Subtraction: " + calc.subtract());
		System.out.println("Multiplication: " + calc.multiply());
		System.out.println("Devision: " + calc.devide());
		
	}
}
20 апр 21, 08:39    [22311314]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
Pcrepair
Member

Откуда:
Сообщений: 759
faustgreen,

Спасибо что прочитали, но! вот это
int FIRST_ARG = 20;
int SECOND_ARG = 10;
внутри класса не то что нужно. нужно передавать эти параметры извне и результат то же выводить наружу

консоль это конечно хорошо, на первые 5 минут изучения Java. но реально классы обмениваются данными через поля и все это и нужно имитировать в работе стенда:
- исходник
- .жар файл полученный из МАВЕН
- стенд с вводом данных и выводом результата по нажатию батона

тут все время пишут о тестировании. все правильно конечно, если у тебя проект целиком. но если у тебе нужно написать только класс, для стороннего проекта? как тогда проверить работоспособность кода? если не сложно...
20 апр 21, 11:23    [22311383]     Ответить | Цитировать Сообщить модератору
 Re: Способы проверки класса на соотвествие ТЗ  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8257
Pcrepair,

>но реально классы обмениваются данными через поля и все это и нужно имитировать в работе стенда:
= реально пища для класса идет там где пасует дельфи.
Это контекст, инжекция, декларативное программирование, конфиги аппСервера.
20 апр 21, 11:27    [22311388]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить