Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
jvstd1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
jvstd1
Commits
864e44ff
Commit
864e44ff
authored
Dec 02, 2024
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pierwsze testy JUnit
parent
150e39cb
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
143 additions
and
2 deletions
+143
-2
pom.xml
pom.xml
+7
-1
Konto.java
src/main/java/p06_enkapsulacja/Konto.java
+1
-1
KontoTest.java
src/test/java/p06_enkapsulacja/KontoTest.java
+85
-0
TestyFunkcji.java
src/test/java/p07_funkcje/TestyFunkcji.java
+50
-0
No files found.
pom.xml
View file @
864e44ff
...
...
@@ -21,7 +21,12 @@
<version>
42.7.4
</version>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
org.junit.jupiter
</groupId>
<artifactId>
junit-jupiter-api
</artifactId>
<version>
5.11.3
</version>
<scope>
test
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
src/main/java/p06_enkapsulacja/Konto.java
View file @
864e44ff
...
...
@@ -53,7 +53,7 @@ public class Konto {
throw
new
IllegalArgumentException
(
"Kwota wypłaty nie jest dodatnia"
);
}
if
(
kwota
>
saldo
)
{
throw
new
BrakSrodkow
(
"
Za mało
środków na koncie nr "
+
numer
);
throw
new
BrakSrodkow
(
"
Brak
środków na koncie nr "
+
numer
);
}
saldo
-=
kwota
;
}
...
...
src/test/java/p06_enkapsulacja/KontoTest.java
0 → 100644
View file @
864e44ff
package
p06_enkapsulacja
;
import
org.junit.jupiter.api.*
;
import
java.time.LocalDate
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
class
KontoTest
{
private
Konto
konto
;
private
Osoba
osoba
;
@BeforeAll
static
void
beforeAll
()
{
System
.
out
.
println
(
"Before all"
);
}
@AfterAll
static
void
afterAll
()
{
System
.
out
.
println
(
"After all"
);
}
@BeforeEach
void
setUp
()
{
System
.
out
.
println
(
"KontoTest setUp"
);
// Jeśli jakiś obiekt jest potrzebny we wszystkich testach (albo zdecydowanej większości)
// to deklarujemy go na poziomie klasy, a inicjalizujemy w metodzie setUp
osoba
=
new
Osoba
(
"Ala"
,
"Kowalska"
,
LocalDate
.
of
(
2000
,
2
,
3
));
konto
=
new
Konto
(
1234
,
osoba
,
1000
);
}
@AfterEach
void
tearDown
()
{
System
.
out
.
println
(
"KontoTest tearDown"
);
}
@Test
void
testToString
()
{
assertEquals
(
"Konto nr 1234, wł: Ala Kowalska ur.2000-02-03, saldo: 1000"
,
konto
.
toString
());
}
@Test
void
wplata
()
{
konto
.
wplata
(
200
);
assertEquals
(
1200
,
konto
.
getSaldo
());
}
@Test
void
wplataUjemna
()
{
assertThrows
(
IllegalArgumentException
.
class
,
()
->
konto
.
wplata
(-
200
));
// sprawdzamy, czy wywołanie wplata doprowadziło do wyjątku,
// ale także czy po zakończeniu stan konta nie uległ zmianie
assertEquals
(
1000
,
konto
.
getSaldo
());
}
@Test
void
wyplata
()
throws
BrakSrodkow
{
konto
.
wyplata
(
300
);
assertEquals
(
700
,
konto
.
getSaldo
());
}
@Test
void
wyplataUjemna
()
{
assertThrows
(
IllegalArgumentException
.
class
,
()
->
konto
.
wyplata
(-
200
));
assertEquals
(
1000
,
konto
.
getSaldo
());
}
@Test
void
wyplataBrakSrodkow
()
{
BrakSrodkow
wyjatek
=
assertThrows
(
BrakSrodkow
.
class
,
()
->
konto
.
wyplata
(
1500
));
assertEquals
(
"Brak środków na koncie nr 1234"
,
wyjatek
.
getMessage
());
assertEquals
(
1000
,
konto
.
getSaldo
());
}
@Test
void
przelew
()
throws
BrakSrodkow
{
// Jeśli jakiegoś obiektu potrzebujemy tylko w jednym teście (lub w małej części testów, które są w klasie)
// to taki obiekt tworzymy już bezpośrednio w metodzie.
Konto
inneKonto
=
new
Konto
(
2222
,
osoba
,
2000
);
konto
.
przelew
(
inneKonto
,
400
);
assertEquals
(
600
,
konto
.
getSaldo
());
assertEquals
(
2400
,
inneKonto
.
getSaldo
());
}
}
\ No newline at end of file
src/test/java/p07_funkcje/TestyFunkcji.java
0 → 100644
View file @
864e44ff
package
p07_funkcje
;
import
org.junit.jupiter.api.Test
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
class
TestyFunkcji
{
@Test
void
testSilnia5
()
{
// wykonuję operację, którą chcę sprawdzić
int
wynik
=
Silnia
.
silnia
(
5
);
// sprawdzam, czy wynik i inne "efekty" są zgodne z oczekiwaniami
// dokonuję tego za pomocą asercji...
// język Java zawiera instrukcję assert
// Ta wbudowana instrukcja assert zostanie uwzględniona (sprawdzona) tylko,
// jeśli Java została uruchomiona z opcją -ea
// Standardowo - tę opcję włącza się podczas testowania, a wyłącza "na produkcji".
// assert wynik == 120;
// assert wynik == 120 : ("Silnia nie działa, bo zamiast 120 zwróciła " + wynik);
// Asercja działa tak:
// - jeśli warunek jest prawdziwy, to nic się nie dzieje i program idzie dalej
// - jeśli warunek nie jest spełniony, to w tym momencie wyrzucany jest wyjątek AssertionError
// Dałoby się to zapisać tak:
// if(! (wynik == 120)) {
// throw new AssertionError();
// }
assertEquals
(
120
,
wynik
);
// assertEquals(120, wynik, "Własny komunikat");
}
@Test
void
testSilnia0
()
{
assertEquals
(
1
,
Silnia
.
silnia
(
0
));
}
@Test
void
testFib0
()
{
assertEquals
(
0
,
Fibonacci
.
fib
(
0
));
}
@Test
void
testFib1
()
{
assertEquals
(
1
,
Fibonacci
.
fib
(
1
));
}
@Test
void
testFib11
()
{
assertEquals
(
89
,
Fibonacci
.
fib
(
11
));
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment