- Utwórz klasę
LoanTermShould
- Napisz test który zweryfikuje czy
LoanTerm.ToMonths()
zwraca 12.
- W klasie
LoanTermShould
utwórz test który sprawdzi czy properyYears
jest ustawione na 1.
- Sprawdź czy dwie instancje
LoanTerm
(ValueObject
) są sobie równe jeżeli wartości parametru Years są sobie równe. - Zakomentuj metody
Equals()
orazGetHashCode
i uruchom jeszcze raz test.
- Porównaj dwie instancje LoanTerm pod kątem referencji (
Is.Not.SameAs()
) - Utwórz trzecią zmienną wskazującą na referencję pierwszej (
Is.SameAs
).
- Utwórz porównaj dwie listy stringów utworzone przy pomocy
new List<string>
. - Utwórz trzecią zmienną wskazującą na pierwszą listę i je porównaj.
- Zmień np. metodę
LoanTerm().ToYears
modyfikując kod tak aby zwrócił niepoprawną ilość miesięcy. - Zedytuj pierwszy test wykorzystując przeciążoną metodę asercji, która wyświetli customowy komunikat.
- Uruchom test i zweryfikuj wiadomość w konsoli.
- Sprawdź czy
0.1 + 0.2 == 0.3
testem - Po IsEqualTo(0.3) wciśnij kropkę i zobacz co podpowie Ci Visual Studio.
- Napisz test tak żeby przeszedł
- Sprawdź czy
1.0 / 3.0 == 0.3333
testem - Napisz test tak żeby przeszedł
- Przetestuj metodę
ProductComparer.CompareMonthlyRepayments()
- Żeby utworzyć instancję ProductComparer, musisz utworzyć:
- listę produktów pożyczek (
LoanProduct
) - stwórz trzy unikalne - nową pożyczkę (
LoanAmount
)
- listę produktów pożyczek (
- Metoda
CompareMonthlyRepayments
zwraca listę i potrzebuje jako parametr warunków:new LoanTerm(30)
(pożyczka na 30 lat) - Sprawdź asercją czy lista zwrócona przez
CompareMonthlyRepayments
zwraca tyle samo elementów ile mamy w liście LoadProduct (z punktu 2)
- Przetestuj metodę
ProductComparer.CompareMonthlyRepayments()
- Żeby utworzyć instancję ProductComparer, musisz utworzyć:
- listę produktów pożyczek (
LoanProduct
) - stwórz trzy - nową pożyczkę (
LoanAmount
)
- listę produktów pożyczek (
- Metoda
CompareMonthlyRepayments
zwraca listę i potrzebuje jako parametr warunków:new LoanTerm(30)
(pożyczka na 30 lat) - Sprawdź asercją czy lista zwrócona przez
CompareMonthlyRepayments
zwraca unikalne elementy
- Przetestuj metodę
ProductComparer.CompareMonthlyRepayments()
- Żeby utworzyć instancję ProductComparer, musisz utworzyć:
- listę produktów pożyczek (
LoanProduct
) - stwórz trzy - nową pożyczkę (
LoanAmount
)
- listę produktów pożyczek (
- Metoda
CompareMonthlyRepayments
zwraca listę i potrzebuje jako parametr warunków:new LoanTerm(30)
(pożyczka na 30 lat) - Sprawdź asercją czy lista zwrócona przez
CompareMonthlyRepayments
zwraca odpowiednie wartości dla pierwszego elementu
- Przetestuj metodę
ProductComparer.CompareMonthlyRepayments()
- Żeby utworzyć instancję ProductComparer, musisz utworzyć:
- listę produktów pożyczek (
LoanProduct
) - stwórz trzy - nową pożyczkę (
LoanAmount
)
- listę produktów pożyczek (
- Metoda
CompareMonthlyRepayments
zwraca listę i potrzebuje jako parametr warunków:new LoanTerm(30)
(pożyczka na 30 lat) - Sprawdź asercją czy lista zwrócona przez
CompareMonthlyRepayments
zwraca odpowiednie wartości w pierwszym elemencie (sprawdź dokładnie propertyProductName
orazInterestRate
, dla property MonthlyRepayment jest większa niż 0)
- Napisz test który złapie wyjątek z klasy LoanTerm.
- Dla
LoanTerm(0)
powinniśmy otrzymaćArgumentOutOfRangeException
- Utwórz plik Data.csv (pamiętaj o ustawieniu Copy to output directory) z takimi danymi
200000, 6.5, 30, 1264.14
200000, 10, 30, 1755.14
500000, 10, 30, 4387.86
- Napisz kod w klasie
public class MonthlyRepaymentCsvData
który zwróci listę obiektówTestCaseData
z danymi pobranymi z pliku .csv - Napisz test który przetestuje przy użyciu generatora danych metodę
CalculateMonthlyRepayment()
z klasyLoanRepaymentCalculator
Podpowiedź do testu:
var sut = new LoanRepaymentCalculator();
var monthlyPayment = sut.CalculateMonthlyRepayment(
new LoanAmount("USD", principal),
interestRate,
new LoanTerm(termInYears));
Assert.That(monthlyPayment, Is.EqualTo(expectedMonthlyPayment));