NUnit, problemy z ExpectedException

NUnit, problemy z ExpectedException
GironX
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 2 lata
  • Postów:59
0

Próbuję zapoznać się z TDD z kursu: https://dariuszwozniak.net/2013/07/16/kurs-tdd-czesc-5-nasz-drugi-test-jednostkowy/
I dotarłem do kodu poniżej.

Kopiuj

[Test]
        [ExpectedException(typeof(DivideByZeroException))]
        public void Divide_DivisionByZero_ThrowsException()
        {
            var calc = new Calculator();
            calc.Divide(2, 0);
        }
  1. IntelliSense nie pokazuje mi takiego atrybutu
  2. VisualStudio wyrzuca mi bład:

Error CS0246 The type or namespace name 'ExpectedExceptionAttribute' could not be found (are you missing a using directive or an assembly reference?) Calculator.Tests C:\Users\igorz\source\repos\Calculator.Tests\Calculatoe.Tests\CalculatorTests.cs

Sprawdzałem w dokumentacji i na SO, ale wyglada to dokładnie tak samo. Nunit jest zainstalowany do tej solucji. VS 2017 i .Net framework 4.6.1
Co jest źle?

edytowany 3x, ostatnio: GironX
MP
  • Rejestracja:około 8 lat
  • Ostatnio:ponad rok
  • Postów:54
2

Materiały z których korzystasz są po prostu stare (2013)
https://stackoverflow.com/questions/33895457/expectedexception-in-nunit-gave-me-an-error

Zobacz pozostałe 4 komentarze
somekind
No trzeba było pętli użyć w metodzie testującej, a to trochę nie o to chodzi przy pisaniu testów. Od jak dawna istnieje MSTest 2?
neves
no właśnie bez pętli, tylko przy użyciu zewnętrznych źródeł danych : plików csv, excel, czy db, brakowało tylko za pomocą atrybutów, co bolało i to w bardzo wielu przypadkach. MSTest v2 już istnieje od jakiegoś czasu, ale dopiero od niedawna, jakoś początek tego roku zastąpił v1 w domyślnych templejtach w VisualStudio.
somekind
Yyy, zewnętrznych źródeł danych? W testach jednostkowych? To co wtedy się testowało: bazę czy parser CSV?
neves
czasami się to przydaje, np przy testowaniu obliczeń numerycznych, gdy do jednej metody możesz mieć setki przypadków testowych, wtedy wygodniej jest te wszystkie numerki trzymać w excelu obok niż w kodzie testu w atrybutach nad metodą. O ile użycie prawdziwej db może nie jest najlepszym pomysłem, ale parsery csv i excela od microsoftu działają pięknie w mstest v1 ;P
somekind
No dobra, ale statystycznie częściej zachodzi chyba potrzeba przetestowania kilku przypadków korzystając ze statycznego typowania. Framework, który tego nie wspiera jest dla mnie skreślony.
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 11 godzin
  • Lokalizacja:Wrocław
2

Korzystaj po prostu z aktualnej dokumentacji NUnit, a nie jakiegoś "tutoriala". ExpectedException to był zły pomysł od początku, bo mógł prowadzić do false-positve. Trzeba używać assercji.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.