Writing tests in .NET using xUnit - xUnit Tutorial

Поділитися
Вставка
  • Опубліковано 14 гру 2024

КОМЕНТАРІ • 69

  • @nickchapsas
    @nickchapsas  3 роки тому +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

  • @Eamo-21
    @Eamo-21 3 роки тому +2

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

  • @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!

  • @BeansEnjoyer911
    @BeansEnjoyer911 3 роки тому

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

  • @stratman1234
    @stratman1234 3 роки тому

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

  • @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.

  • @RandomVlogsToShare
    @RandomVlogsToShare 4 роки тому +1

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

  • @barwalgayatri4655
    @barwalgayatri4655 Рік тому

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

  • @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!

  • @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?

  • @serhiihorun6298
    @serhiihorun6298 4 роки тому +1

    Thanks for the tutorials! They are superb!

  • @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.

  • @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 !

  • @lucianocuesta1170
    @lucianocuesta1170 3 роки тому

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

  • @zerosandones7547
    @zerosandones7547 2 роки тому

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

  • @cyberdragon852
    @cyberdragon852 Рік тому

    Very helpful thank you

  • @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?

  • @TonoNamnum
    @TonoNamnum 3 роки тому

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

  • @compman73
    @compman73 3 роки тому

    Thank you
    It was very helpful

  • @vaibhavmalhotra5644
    @vaibhavmalhotra5644 4 роки тому

    how does your visual studio look so different?

  • @mdabuzar2130
    @mdabuzar2130 3 роки тому

    As usual, the best video.

  • @vmamore
    @vmamore 4 роки тому

    Awesome Nick, thank you!

  • @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

  • @serhiihorun6298
    @serhiihorun6298 4 роки тому +1

    Great video, thank you!

  • @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?

  • @adamlasry5225
    @adamlasry5225 Рік тому

    Brilliant. Thanks.

  • @longb1913
    @longb1913 Рік тому

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

  • @harag9
    @harag9 3 роки тому

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

  • @MA-pt6ii
    @MA-pt6ii 4 роки тому

    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

  • @saaddahmani1870
    @saaddahmani1870 4 роки тому

    Very very helpful video... thanks

  • @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.

  • @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.

  • @muhamedkarajic
    @muhamedkarajic 3 роки тому

    Great Tutorial Indeed!

  • @davidpccode
    @davidpccode 4 роки тому

    Great vid.. thank you!!

  • @soucianceeqdamrashti8175
    @soucianceeqdamrashti8175 4 роки тому

    Good tutorial!

  • @alfredoquintanalopez2265
    @alfredoquintanalopez2265 4 роки тому

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

  • @sairk6174
    @sairk6174 4 роки тому

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

  • @igor5379
    @igor5379 4 роки тому

    thanks, bro!

  • @yassineyounes3479
    @yassineyounes3479 4 роки тому

    Great video! keep up the good work!

  • @ibknl1986
    @ibknl1986 2 роки тому

    Nice video.

  • @VladyslavPavliuk
    @VladyslavPavliuk 4 роки тому +1

    #JetBrainsRider

  • @flave11
    @flave11 4 роки тому

    Very nice

  • @andriyzubyk629
    @andriyzubyk629 4 роки тому

    #JetBrainsRide thanks for your videos)

  • @medachref7167
    @medachref7167 3 роки тому

    hahaha because my pc is too fast

  • @clearlyunwell
    @clearlyunwell 3 роки тому

    👍🏽

  • @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