Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class AtTodoMVCPageWithClearedDataAfterEachTest extends homework.third.v3.BaseTest{
- /*
- раз мы в одном проекте держим несколько решений
- то наследуйся от BaseTest - из этого же пекеджа - todomvctest/src/test/java/homework/fourth/v1/
- */
- **************************************************
- private String makeGivenCommand(String... tasks) {
- /*
- раз пока реализуем версию с параметрами-строками
- то советую назвать параметр не tasks, а taskTexts
- версию с объектами - реализуем позже
- */
- String results = "localStorage.setItem(\"todos-troopjs\", \"[";
- for (String task : tasks) {
- // не понятна конструкция (String task : tasks). Понимаю, что тут надо создать класс. Но как можно упростить для начала?
- /*
- конструкция = for (String task : tasks)
- это вариант цикла, когда мы обходим некую коллекцию tasks
- и на каждой итерации - работаем с текущим знасением - task
- вообще об этой конструкции - можно почитать
- http://developer.alexanderklimov.ru/android/java/for.php (раздел - Аналог foreach)
- http://www.linkex.ru/java/cycle-for.php (раздел - Версия "for-each" цикла for)
- https://www.tutorialspoint.com/javaexamples/method_for.htm
- http://pr0java.blogspot.com/2015/04/for-foreach.html
- а теперь - и про varargs параметры методов
- http://www.linkex.ru/java/varargs.php
- http://stackoverflow.com/questions/2161912/why-varargs-should-be-the-last-in-method-signature
- http://www.java-tips.org/java-se-tips-100019/24-java-lang/481-using-the-varargs-language-feature.html
- про класс - пока не думай
- давай разберемся с этой версией
- когда мы работаем просто со строками - с текстами тасок
- */
- results += "{\\\"completed\\\":false, \\\"taskTexts\\\":\\\"tasks\\\"},";
- // тут tasks - не параметр, а значение строки. Вообщем в данном месте самые большие проблемы.
- /*
- ты верно заметил, действительно, тут tasks - просто часть строки
- нам нужно в строку, которую мы собираем, включить значение строковой переменной task
- (!!!не tasks - т к - tasks = ВСЕ переданные строки, а нам нужно на каждой итерации цикла -
- для каждой отдельной таски - добавить {....},)
- давай вернемся к первоначальному варианту
- localStorage.setItem("todos-troopjs", "[{\"completed\":false, \"title\":\"a\" }]")
- заметь - как описывается текст таски - \"title\":\"a\"
- а в собираемой строке - ты не используешь \"title\"
- почему?
- сравни =
- "\\\"title\\\":\\\"task\\\""
- и
- "\\\"title\\\":\\\"" + task + "\\\""
- в первом случае - такую строку и получим = \"title\":\"task\"
- а во втором случае - получим другую строку = \"title\":\"...\" (... - то, что содержит строковая переменная task)
- и тебе именно вот такой вариант и нужен )
- погугли тему java string concatenation
- самый простой вариант - это "a" + "b" + "c"
- это если у тебя просто строчки "a" и "b" и "c"
- а если допустим строковая переменная b="ddldldldldl"
- и нам нужно с ее значением строку собрать = то будет вот так = "a" + b + "c"
- */
- }
- if (tasks.length > 0) {
- results = results.substring(0, (results.length() - 2));
- }
- results = results + "]')";
- System.out.println(results);
- return results;
- }
- /*
- Пока давай не спешить с вариантом метода
- который оперирует объектами класса Task
- пусть нам передают строки = тексты тасок
- усложнять будем потом
- подравняй это
- и дальше уже обсудим
- вопросы задаешь верные)
- это уже очень ок
- скелет метода - тоже ок
- */
Advertisement
Add Comment
Please, Sign In to add comment