Forwarded from Книги для программистов
Python Unit Test Automation (2017)
Автор: Ashwin Pajankar
#python #book #english #advanced
Язык: английский.
Целевая аудитория: опытные разработчики.
Тестирование — это необходимый процесс в программировании, позволяющий проверить на корректность отдельные части исходного кода программы. В настоящем руководстве вы познакомитесь с юнит-тестированием для проектов на языке программирования Python на примере таких библиотек, как doctest, unittest, nose, nose2 и pytest. Вы узнаете о важных концепциях тестирования программного обеспечения и их реализации на Python 3, а также узнаете разницу модульных тестов для Python 2 и 3.
В книге рассматриваются следующие темы:
✔ введение в Python;
✔ юнит-тестирование;
✔ автоматизация тестов;
✔ обзор библиотек nose и nose2;
✔ принц TDD и многое другое.
Преимущества:
➕ небольшой объём;
➕актуальный материал;
➕ упражнения и примеры кода;
➕ подходит начинающим.
Недостатки:
➖ не замечено.
Автор: Ashwin Pajankar
#python #book #english #advanced
Язык: английский.
Целевая аудитория: опытные разработчики.
Тестирование — это необходимый процесс в программировании, позволяющий проверить на корректность отдельные части исходного кода программы. В настоящем руководстве вы познакомитесь с юнит-тестированием для проектов на языке программирования Python на примере таких библиотек, как doctest, unittest, nose, nose2 и pytest. Вы узнаете о важных концепциях тестирования программного обеспечения и их реализации на Python 3, а также узнаете разницу модульных тестов для Python 2 и 3.
В книге рассматриваются следующие темы:
✔ введение в Python;
✔ юнит-тестирование;
✔ автоматизация тестов;
✔ обзор библиотек nose и nose2;
✔ принц TDD и многое другое.
Преимущества:
➕ небольшой объём;
➕актуальный материал;
➕ упражнения и примеры кода;
➕ подходит начинающим.
Недостатки:
➖ не замечено.
private void SendMessage(string phoneNum, string messageText)
{
var service = new SMSGateClient();
service.ClientCredentials.UserName.UserName = "smsgateuser";
service.ClientCredentials.UserName.Password = "SmsGate20Raz";
var auth = new AuthData() { Login = "StartSMS", Password = "SmsSmsSms30Raz" };
var nums = phoneNum.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
//var ident = service.SendMessage(auth, phoneNum.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries), messageText);
foreach (var num in nums)
{
try
{
var ident = service.SendMessage(auth, new[] { num }, StringSplitOptions.RemoveEmptyEntries), messageText);
LogMessage(phoneNum, messageText, ident.FirstOrDefault()?.MessageID > 0 ? "Отправлено" : "Ошибка");
}
catch (Exception e)
{
MessageBox.Show($"{num}\r\n{e.Message}");
}
}
}
{
var service = new SMSGateClient();
service.ClientCredentials.UserName.UserName = "smsgateuser";
service.ClientCredentials.UserName.Password = "SmsGate20Raz";
var auth = new AuthData() { Login = "StartSMS", Password = "SmsSmsSms30Raz" };
var nums = phoneNum.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries);
//var ident = service.SendMessage(auth, phoneNum.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries), messageText);
foreach (var num in nums)
{
try
{
var ident = service.SendMessage(auth, new[] { num }, StringSplitOptions.RemoveEmptyEntries), messageText);
LogMessage(phoneNum, messageText, ident.FirstOrDefault()?.MessageID > 0 ? "Отправлено" : "Ошибка");
}
catch (Exception e)
{
MessageBox.Show($"{num}\r\n{e.Message}");
}
}
}
Написать приложение «Вишлист» с полями: название, цена, ссылка на страницу с покупкой, примечание или любое другое маленькое CRUD-приложение на свой вкус. Требуемые технологии: MySQL, Python + PyQT. Выложить на GitHub. Ожидаемое время выполнения: 2-4 часа.
Дальнейшая коммуникация
Ссылку на GitHub с тестовым заданием присылайте на skkachaev в telegram/gmail/ТАДАМ вместе со ссылкой на резюме.
Дальнейшая коммуникация
Ссылку на GitHub с тестовым заданием присылайте на skkachaev в telegram/gmail/ТАДАМ вместе со ссылкой на резюме.
В файле pom.xml нужно повысить версии зависимостей 5.0 -> 6.0 и 1.4 -> 1.5
Сделай это с помощью Bash
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>1.4</version>
</plugin>
...
Сделай это с помощью Bash
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>1.4</version>
</plugin>
...