Writing tests in .NET using xUnit - xUnit Tutorial

Поделиться
HTML-код
  • Опубликовано: 27 окт 2024

Комментарии • 69

  • @nickchapsas
    @nickchapsas  2 года назад +11

    Are you looking for more training? Check out my "From Zero to Hero: Unit testing in C#" course: nickchapsas.com/p/from-zero-to-hero-unit-testing-in-c

  • @nstohler75
    @nstohler75 4 года назад +17

    Some ideas for your next unit testing videos:
    - How to write more elegant tests with FluentAssertions
    - When and how to use mocks, when to avoid
    - How to test the EF Core Queries using InMemory Database Provider
    - AutoFixture - good or bad?
    - Blazor projects: how to test pages
    - MediatR: how to test commands/queries

    • @nickchapsas
      @nickchapsas  4 года назад +9

      Great ideas! I have a video for both FluentAssetions, Shouldly, Moq, FakeItEasy, NSubstitude and AutoFixture in the pipeline alongside 25-30 other libraries :D I actually made a video on Blazor testing but I had to scrap it because Microsoft will eventually come out with their own testing package and will render my video obsolete.

    • @shaunsuzor3758
      @shaunsuzor3758 4 года назад

      Vç]

  • @nstohler75
    @nstohler75 4 года назад +8

    Great video, thanks Nick! I've just finished reading Vladimir Khorikovs book on Unit Testing and would recommend that one to every one who is interested in the topic! Also, his article "You are naming your tests wrong!" is a great read.

    • @nickchapsas
      @nickchapsas  4 года назад +2

      Keep in mind this is not about unit testing but about how to use the xUnit library. I already have a video talking about TDD and I go more in depth about naming and structure.

    • @nstohler75
      @nstohler75 4 года назад

      @@nickchapsas Yes, your other video is great too, I've learned a lot about TDD and xUnit there already, and it led me to dig deep into the topics. I've applied everything I learned to a new project and must say it is very nice to have all the tests as a safety net!

  • @Eamo-21
    @Eamo-21 3 года назад +2

    just found your channel a week ago. Really high-quality content! keep it up

  • @stratman1234
    @stratman1234 3 года назад

    This has been a huge help. Before watching your video, I only know about [Fact] and [Theory][InlineData].

  • @BeansEnjoyer911
    @BeansEnjoyer911 2 года назад

    I wasn't convinced. But about a third of the way through.... This is amazing! Will definitely look into this package

  • @donnyjoe7653
    @donnyjoe7653 4 года назад

    Didn't expect this video to go beyond beginner's level and turned out to be extremely useful condensed and clear information. I just created a new private playlist for favorites to add this in. Mille Grazie! :*

  • @iwayansudiana4897
    @iwayansudiana4897 4 года назад +2

    Thanks man! It helps me to start my testing.

  • @barwalgayatri4655
    @barwalgayatri4655 Год назад

    Too good and informative videos Nick. proud to be ur subscriber :)

  • @RandomVlogsToShare
    @RandomVlogsToShare 4 года назад +1

    Great video, nicely explained and you have kept it simple and easy to understand. Thank you.

  • @tuberklz
    @tuberklz 3 года назад

    yet again great tutorial. thanks for all the effort

  • @Chiramisudo
    @Chiramisudo 2 года назад

    Outstanding! This is the ideal video for me. A bunch of real code examples showcasing the full feature set (or at least the most important ones) along with a little explanation as to limitations, use cases, etc. Perfecto!!
    The only constructive criticism I have is that (on my desktop speakers at least) the sound is a bit muddled and bassy for voice.

  • @darkarmo
    @darkarmo 4 года назад +1

    Great video! didn't know about the ClassData, thanks!

  • @serhiihorun6298
    @serhiihorun6298 4 года назад +1

    Thanks for the tutorials! They are superb!

  • @vmamore
    @vmamore 4 года назад

    Awesome Nick, thank you!

  • @adamlasry5225
    @adamlasry5225 Год назад

    Brilliant. Thanks.

  • @JesperPDk
    @JesperPDk 3 года назад

    It's so that I thought about whether you could make a video where you have a project, service, data and testing. It's because I'm in trouble compared to when I need something in service that I can not access the database. I have researched a bit in relation to stackoverflow around it and there I could read my way to "You can not use appsettings.json as Configuration in test project from Web project. If you want to use, you should make a custom implementation" Thanks for video.

  • @cyberdragon852
    @cyberdragon852 Год назад

    Very helpful thank you

  • @compman73
    @compman73 3 года назад

    Thank you
    It was very helpful

  • @VG-vn8kk
    @VG-vn8kk 4 года назад +4

    Thank you very much for your videos, Nick! I'm learning a lot!
    Would it be possible for you to create a little practical tutorial on how to test API controllers and services which talk to the database layer with xUnit?

    • @nickchapsas
      @nickchapsas  4 года назад +6

      It’s your lucky day. The next 3 videos will be about mocking 😃

    • @VG-vn8kk
      @VG-vn8kk 4 года назад

      @@nickchapsas Thanks, man! Really appreciate you sharing your knowledge. And your short, strait to the point videos are very-very helpful.

    • @lorenzoshawn7969
      @lorenzoshawn7969 3 года назад

      I guess it's kinda randomly asking but does anybody know a good site to watch newly released series online?

    • @hassanmaxton7942
      @hassanmaxton7942 3 года назад

      @Lorenzo Shawn flixportal xD

    • @lorenzoshawn7969
      @lorenzoshawn7969 3 года назад

      @Hassan Maxton Thanks, I signed up and it seems like a nice service :D I appreciate it !

  • @serhiihorun6298
    @serhiihorun6298 4 года назад +1

    Great video, thank you!

  • @saaddahmani1870
    @saaddahmani1870 4 года назад

    Very very helpful video... thanks

  • @mdabuzar2130
    @mdabuzar2130 3 года назад

    As usual, the best video.

  • @muhamedkarajic
    @muhamedkarajic 3 года назад

    Great Tutorial Indeed!

  • @Steve3dot1416
    @Steve3dot1416 Год назад

    19:58. I am confused. If each one of the two test call RandomGuid, it should return a random one each time even if the guid generator is the same instance between each test. How come they return the same value?

  • @zerosandones7547
    @zerosandones7547 2 года назад

    Do we need to suffix "Theory" in every [Theory] method? Like is it best practice?

  • @davidpccode
    @davidpccode 4 года назад

    Great vid.. thank you!!

  • @harag9
    @harag9 3 года назад

    Thanks for this, though it was quick, it's very useful... But - Who tests the tests?

  • @igor5379
    @igor5379 4 года назад

    thanks, bro!

  • @soucianceeqdamrashti8175
    @soucianceeqdamrashti8175 4 года назад

    Good tutorial!

  • @TonoNamnum
    @TonoNamnum 3 года назад

    Is it bad practice to use a static property containing the dependencies instead of using a context?

  • @TarekFaham
    @TarekFaham 2 года назад

    Thank you so much...
    What if you want to initialize selenium chrome driver using some parameters how you will inject it in the constructor?

  • @ghostslinger3148
    @ghostslinger3148 2 года назад

    Hi Nick, great video!
    Do you have a video going through unit tests using InMemoryDatabase db context?
    I run into problem "An item with the same key has already
    been added" when running multiple unit test files when initializing the same context even when i already added IDisposable and EnsureDeleted.
    Is it just bad to do unit test using this way?

  • @lucianocuesta1170
    @lucianocuesta1170 3 года назад

    what about Component test, can we use xUNIT for that propouse?

  • @alfredoquintanalopez2265
    @alfredoquintanalopez2265 4 года назад

    Could you please make a video about NUnit? Thanks a lot!!!!!. Great videos!!!

  • @zevspitz8925
    @zevspitz8925 2 года назад

    Why does TestData need to be an iterator function? Let it return the data from a static field.
    (Or better yet, allow MemberData to use fields directly; but that's apparently an xUnit design choice.)

    • @nickchapsas
      @nickchapsas  2 года назад

      It's an iterator because xUnit will use it to iterate over them in an efficient way to execute

    • @zevspitz8925
      @zevspitz8925 2 года назад

      @@nickchapsas Would it be more efficient than a method which returns the same IEnumerable from a static field, storing the entire set as an object[][], or List?

    • @nickchapsas
      @nickchapsas  2 года назад

      @@zevspitz8925 xUnit is lazily reading the cases so the full array isn't enumerated part the point of the current testing case, so yeah it would be more efficient

  • @taylorjonl
    @taylorjonl Год назад

    Great beginner video but the information about the tests running in parallel is incorrect. Tests within a class will not run in parallel because by default xunit create a test collection per class. You can switch the behavior to create a collection per assembly but you can't go to a lower level than class AFAIK. Also, if you use CollectionDefinitions that use fixtures, you need to ensure you define the CollectionDefinition in the assembly with the tests, otherwise the fixtures part of the CollectionDefinition isn't recognized and it won't create the fixtures, silently failing. After 4 hours I found single sentence in the documentation that states this.

    • @ChrisByram
      @ChrisByram Год назад

      I'd suspect it might be version differences. This video is 3 years old and at least one major version has happened since then.

  • @sairk6174
    @sairk6174 4 года назад

    AWESOME .. NICK THANKS FOR EXCELLENT VIDEOS ..CAN YOU PLEASE CHECK POSSIBILITIES FOR SOME VIDS ON CLIENT SIDE UNIT TESTING ..USING JASMINE??

  • @vaibhavmalhotra5644
    @vaibhavmalhotra5644 4 года назад

    how does your visual studio look so different?

  • @ibknl1986
    @ibknl1986 2 года назад

    Nice video.

  • @MA-pt6ii
    @MA-pt6ii 3 года назад

    Hi Great video...I am trying to implement extent reporting using Extent reporting using Selenium c# with Xunit. are you able to guide me details of how to implement this in my framework

  • @flave11
    @flave11 4 года назад

    Very nice

  • @mchen0901
    @mchen0901 4 года назад

    Hi there, do you mind providing a tutorial for AssemblyFixture?
    CollectionFixture doesnt work for me since it requires all involved tests to be executed sequentially, but I need parallelism
    Thank you!

    • @nickchapsas
      @nickchapsas  4 года назад +2

      Hey Mike, I wasn't aware of AssemblyFixture. I don't know if I will make a video about it but I could write a blog.

  • @longb1913
    @longb1913 Год назад

    where do u get CalculatorState from in the calculator class? wtf

  • @yassineyounes3479
    @yassineyounes3479 4 года назад

    Great video! keep up the good work!

  • @VladyslavPavliuk
    @VladyslavPavliuk 4 года назад +1

    #JetBrainsRider

  • @andriyzubyk629
    @andriyzubyk629 4 года назад

    #JetBrainsRide thanks for your videos)

  • @clearlyunwell
    @clearlyunwell 3 года назад

    👍🏽

  • @medachref7167
    @medachref7167 2 года назад

    hahaha because my pc is too fast

  • @Fasiibcs
    @Fasiibcs 4 года назад

    Your speed is too fast, I know about unit test but not know about xUnit so it is hard to grasp the detail that much quick.
    Your videos are good, but please try to slow down your speed and explain thing is little more detail.

    • @krzysztofurban4561
      @krzysztofurban4561 4 года назад

      You always can reduce speed using youtube video setting (for example set speed to 0.75)

  • @fabrizziocht
    @fabrizziocht 4 года назад

    Great video, thank you!!

  • @sunpakky
    @sunpakky 4 года назад

    #JetBrainsRider