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

GironX
Dzięki. czy mógłbys polecić cos bardziej na czasie?
MP
Aktualnie w pracy korzystamy z MSTest i .NET Core. Ja sobie chwalę.
somekind
A można już do MSTest dostarczać kilka przypadków testowych do jednej metody? Albo robić testy dla iloczynu kartezjańskiego kilku zbiorów parametrów?
neves
dostarczyć kilka przypadków testowych do MSTesta można było zawsze tyle że nie za pomocą atrybutów, w MSTest 2 można wreszcie za pomocą atrybutów to zrobić :)
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.