Aktywne Wpisy
![Naproksen](https://wykop.pl/cdn/c0834752/feb5574ae5abba35e08453acc0c56b6b8fec726ff473be873ff75af18f7f0b14,q60.png)
Naproksen +1062
![urarthone](https://wykop.pl/cdn/c3397992/urarthone_okiRc2kjRD,q60.jpg)
urarthone +744
![urarthone - Zapraszam na #garscnewsow na 6 listopada
Wersja bez grafiki na FB tutaj](https://wykop.pl/cdn/c3201142/77370f841e842fefa4a67dbda568d52ee100ab8957efe8f9b8991990fedcc9f3,w150.jpg?author=urarthone&auth=2f810d9ab87637ed3e77535d064c0a28)
News dnia to...
- Morawiecki będzie próbował utworzyć rząd 27.6% (807)
- Wyrzucenie 4 zawodników z U17 chwilę przed MŚ 3.4% (100)
- Znaleziono ciało poszukiwanego zabójcy 6-latka 9.1% (267)
- ZEA wysłały szpital do Gazy 1.1% (32)
- Złodziej książek z USA 4.1% (121)
- Microsoft chciał zaoszczędzić na pracownikach 1.6% (48)
- Turyści z Hiszpanii wracają ze sraczką 3.9% (115)
- Zrobił pranie sąsiadce, kiedy jej nie było 49.1% (1436)
public void AddGrade(double grade)
{
if (grade <= 100 && grade >= 0)
{
grades.Add(grade);
}
else { Console.WriteLine("Invalid Value."); }
Wiem, że to działa prawidłowo i nie dodamy np. oceny 105, ale nie wiem jak do tego napisać test jednostkowy. Próbowałem na zasadzie, Asserts.Equal(105, Book.grades[0]), no ale to nie pyka, bo przecież Book.grades[0] nie będzie istnieć, jeżeli spróbuje temu nadać wartość powyżej 100.
Mam nadzieję, że udało mi się to dobrze wytłumaczyć. Z godzinę starałem się to zrobić lub znaleźć jakieś wyjaśnienie w internecie, ale nic z tego. Pomocy (╯︵╰,)
#programowanie #csharp
2. Powinieneś mieć przypadki "should not add grade" i wymagać dla <0, >100 zeby bylo empty
Edit: Upraszczając - w tym scenariuszu nie masz sprawdzić grades[0] tylko grades.isEmpty() czy tam size/length == 0
Testem jednostkowym nie sprawdzasz bezpośrednio efektów ubocznych (zmian w otoczeniu programu - pliki, bazy danych, zdalne serwisy czy jak tutaj konsola). Musisz je oddzielić od aplikacji przez port (interfejs) i adaptery (implementacje) - przy testowaniu będą co najmniej dwa adaptery: jeden to prawdziwa konsola, drugi to mock zapisujący wynik do pamięci, który można odczytać i
Dzięki za odpowiedzi.
Dzięki Waszym propozycjom, napisałem to w ten sposób:
[Fact]
public void DoesIfStatementWorkCorrectly()
{
var book = new Book("");
book.AddGrade(105);
Assert.Equal(0, book.grades.Count);
Generalnie działa, ale wyświetla mi się ostrzeżenie:
'Do not use Assert.Equal() to check for collection size.'
Niestety nie wiem na tym etapie, jak to rozwiązać inaczej. Generalnie nie widzę żadnego sensu pisania testu dla takiej instrukcji IF - raczej mam pewność, że to działa poprawnie.