Getting started with Behavior Driven Development (BDD) in .NET using SpecFlow

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ต.ค. 2024

ความคิดเห็น • 75

  • @小鳥ちゃん
    @小鳥ちゃん 3 ปีที่แล้ว +23

    Thanks for all these beautiful videos, this channel may be truly considered as a rare gem! ^w^

  • @peterzaj8876
    @peterzaj8876 3 ปีที่แล้ว +12

    I could not wait for PDD (Poem Driven Development), where you have to write the unit tests / features as a poem... :D
    I mean in my time this was called as requirement specification and it was written in word it was readable for everyone but I guess that is now not fancy enough...
    However, really good explanation :)

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว +4

      It’s actually called Specification by Example in BDD as well

  • @bahtiyarozdere9303
    @bahtiyarozdere9303 3 ปีที่แล้ว +1

    Please continue. Unit testing is great but when it comes to business we developers need a common point to communicate with business language. Specflow is great for this. Thank you for nice introduction.

  • @belugaaa6649
    @belugaaa6649 3 ปีที่แล้ว +9

    Excellent video for a starter like me on BDD, i will read the documentation and do a sample feature tonight.
    can you also make video talking about hooks ? it seems like Pre and Post steps during test run.

  • @RomanSuska
    @RomanSuska 3 ปีที่แล้ว +6

    Wow, I am impressed. Please, continue videos about BDD :)

  • @HenrikKleist
    @HenrikKleist 3 ปีที่แล้ว +9

    This is amazing content! I would like to see more content with that topic!

  • @jangohemmes352
    @jangohemmes352 3 ปีที่แล้ว

    Please continue this series, BDD is a major blind spot in my work

  • @siswaabadi3585
    @siswaabadi3585 2 ปีที่แล้ว

    Please continue the series. This is a great video.

  • @rops009
    @rops009 3 ปีที่แล้ว

    You are one of my favourite youtubers! And please continue with the BDD and SpecFlow!

  • @thespicycoder5583
    @thespicycoder5583 3 ปีที่แล้ว

    I was hesitating to switch to Rider, because of tool supports like SpecFlow. Now I can use it with confidence.
    Thanks Nick :)

    • @codex4046
      @codex4046 3 ปีที่แล้ว +1

      This plugin was only released last 28th of January if I remember correctly. I've wanted to learn using SpecFlow last year and there was no real support for Rider. Specflow support was both in the Jetbrains bugtracker as the Specflow github issues requested in 2017.
      The support for Rider related tools is growing, but sometimes it's just not there yet unfortunately. That said, I've been using Rider happily for a few years now.

  • @brunosansigolo
    @brunosansigolo 3 ปีที่แล้ว +4

    Awesome content! Please continue with the series :)

  • @jez9999
    @jez9999 3 ปีที่แล้ว

    This is a useful real-world example of BDD that kind of confirms my feeling about it, which is that it doesn't really add much. It takes a requirements spec and makes it into a harder-to-read format like gherkin and for what exactly? A requirements spec written in English is gonna be easier for a project manager to write (in fact every project manager I've met wants to do that instead of learning Gherkin) and perfectly easy for a team to analyze and implement. BDD seems to be solving a problem that doesn't exist.

    • @peterhike8221
      @peterhike8221 3 ปีที่แล้ว

      Typical upper management attitude. Project managers generally want nothing to do with code or the responsibility of developing features, which is fine but now that an accountability factor exists that makes product directly responsible for the behaviour of the applicaiton and what is shipped its all "uhhh but we prefer plain english". Fuck off

  • @haroldemmers3678
    @haroldemmers3678 3 ปีที่แล้ว +2

    Love to see more of this.

  • @bulsond
    @bulsond 3 ปีที่แล้ว +1

    Thanks. I would like to continue this topic.

  • @KazimierzLuska
    @KazimierzLuska 3 ปีที่แล้ว

    Hey Nick this is a really nice intro video, would definitely be up for watching your take on a bit more complex features ;)

  • @terryanderson8354
    @terryanderson8354 3 ปีที่แล้ว

    Excellent material...keep up the great work!

  • @nabinkjha
    @nabinkjha 3 ปีที่แล้ว

    Excellent video. Every second worth to watch.

  • @rhexcasas8452
    @rhexcasas8452 ปีที่แล้ว

    Please continue Sir.

  • @josedaniel2417
    @josedaniel2417 10 หลายเดือนก่อน

    Please continue; so interesting

  • @lost-prototype
    @lost-prototype 3 ปีที่แล้ว

    Wonderful video Nick! As always!

  • @ahmedgalal007
    @ahmedgalal007 2 ปีที่แล้ว

    Please continue , Great video bro

  • @georged.3684
    @georged.3684 3 ปีที่แล้ว

    Nice video Nick. A good follow up would be to use SpecFlow combined with Selenium in order to achieve Automation Testing. Well done though!

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว +1

      I actually have a video on that already but I use Playwright instead of Selenium

  • @AndrewHeys
    @AndrewHeys 3 ปีที่แล้ว +6

    Please continue! :-)

  • @yurifontoura2189
    @yurifontoura2189 ปีที่แล้ว

    This is AWESOME!

  • @_Bence
    @_Bence 3 ปีที่แล้ว

    Thank you for your videos! Very informative and great explanation!

  • @thespicycoder5583
    @thespicycoder5583 3 ปีที่แล้ว +1

    Combine SpecFlow with InMemory API testing concept from Nick's other video, for more super powers!

  • @YouGot2expressurself
    @YouGot2expressurself 3 ปีที่แล้ว +1

    I'm programming for like 13 years, I also make some videos of programming but they are meant for the native romainian speakers because usually a part of them do not know that well English but man you really inspired me to give something back. To be honest you do an amazing job. Kudos ! Respect ! Anyway good job !

    • @andreibicu5592
      @andreibicu5592 2 ปีที่แล้ว

      Romanian programmers do know English. Unlike other nationalities, we write the code in English, create the documentations in English, exchange emails in English, speak with the clients in English. We even borrowed terms from English to our vocabulary. Have you ever seen a Romanian using a Romanian keyboard :)) ?
      I believe only the people aged 50+ (with some exceptions, of course) don't know English, so maybe your content is more focused on them.
      Nick's doing a great job, indeed!

    • @YouGot2expressurself
      @YouGot2expressurself 2 ปีที่แล้ว

      @@andreibicu5592 Dude, next time, ready my comment. There are people "THAT AREN'T PROGRAMMERS". "I also make some videos of programming but they are meant for the native romainian speakers because usually a part of them do not know that well English" ... Read that again slowly. " A PART OF THEM"

  • @regeface
    @regeface 3 ปีที่แล้ว

    Awesome video 👍 I can see myself using in my personal projects maybe.
    From your experience, what are some potential drawbacks from using specflow?

    • @RaMz00z
      @RaMz00z ปีที่แล้ว

      From 4 years of writing SpecFlows : writing reusable Givens is the big challenge.
      If you do it the wrong way, you'll end up with thousands of Givens that are pretty much the same but not really, and then chosing one when you write a test is a nightmare...
      For example, I would advise against "Given a user that is logged in", because after you'll have "Given a user from that country", "Given a user that is 2m tall", 'Given a user that is right-handed". It's a nightmare, and scenario setup can become gigantic and unreadable.
      Instead, you can use an array to position all properties at once, and have only one Given per entity. That's what we did, it changed everyone's life !

  • @MultiMrSaid
    @MultiMrSaid 3 ปีที่แล้ว

    I had question about .feature.cs file and removed it when I solved it.
    But looks like you answered to my question Nick.
    Yes I tried to use [Binding] and it solved my issue. so Looks like with new updates we don't see anymore .feature.cs file but it works when we add [Binding] to our steps.cs class.
    Thanks

  • @brandonpearman9218
    @brandonpearman9218 3 ปีที่แล้ว

    Looks interesting and I am interested to see more on this. but I imagine this being a nightmare practically. If business writes these features:
    1. do they need access to source code or do devs copy paste it into the source?
    2. Every time they write something that does not match what your code allows for it breaks the test. eg if they write "3 apples that cost 5 USD are added to the cart", do you have to tell them to use specific words and do a back and forth with them, or do you cater for different variations?

  • @arthurrasera
    @arthurrasera 3 ปีที่แล้ว

    Nice subject. Please keep it up.
    It would be nice to build a more complex sistem as you progress so that we can see more realistic features. Including integration with local and external web apis. Maybe merge gRPC series with BDD to create a real world case at the end.

  • @PaulSebastianM
    @PaulSebastianM 2 ปีที่แล้ว

    Hey Nick, might be cooler if you mirrored your camera so that it looks like you're looking at the same code we're looking at when we're watching your videos 😊.

  • @rao6815
    @rao6815 3 ปีที่แล้ว +1

    One general question Nick. We are .Net or C# stack developer. Today I was reading new opening JD just for learning new technologies. I saw approximately 20 new opening. There were 12 to 13 jobs for Java developer and only 3 to 4 for .Net and C# developer and remaining for MEAN and MERN I did understand why ? even now Net core is open source and support multiple open source platform. Now my question is do we need to change our stack?

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว +2

      I can't know for sure but my personal take is this. Java has been around fo a long time and has been cross platform from the beginning making it more popular than C# and .NET. This means there is a ton of Java code that needs to be worked on and maintained. Companies can't easily turn an switch and convert their amazing Java developers to amazing .NET Core developers overnight. It's too expensive and too dangerous. So people that are using .NET Core/5 are in their overwelming majority, people who were already .NET Framework developers that knew C#. More and more teams and comapnies are picking up .NET 5 now but it's gonna be a long time before it becomes more popular than Java.

    • @rao6815
      @rao6815 3 ปีที่แล้ว

      @@nickchapsas yes make sense..

    • @bodek321
      @bodek321 3 ปีที่แล้ว

      Agree with Nick 100%. NET Core is very fresh platform comparing to Java and many dotnet/c# shops are still having .NET Framework 4.7 or even 4.0 bases systems MVC, REST API, WebForms. Java is developing very dynamically while maintaining amazing backward compatibility with Java 8 or with previous releases. This allows Java teams to migrate projects more easily. For sure we should expect many legacy .NET Framework systems to be migrated soon, .NET Framework 4.8 is the last version of the framework and soon we should have .NET 6 LTS (good moment for the migration)

  • @YuryArutyunov
    @YuryArutyunov 3 ปีที่แล้ว

    Please continue!

  • @mariosteiner9206
    @mariosteiner9206 3 ปีที่แล้ว

    Great video and excellent explanations. Keep up the great work! Would love to watch a follow-up video about Hooks :)

  • @rao6815
    @rao6815 3 ปีที่แล้ว

    Awesome explanation.

  • @dennisigah7579
    @dennisigah7579 3 ปีที่แล้ว

    Thanks for the video, very informative

  • @nzliqi07
    @nzliqi07 2 ปีที่แล้ว

    Fantastic video, are you able to make a video of SpecFlow Selenium with Page Object Model pattern, thank you Nick :)

  • @Ecarin
    @Ecarin ปีที่แล้ว

    best BDD VIDEO EVER!

  • @dFruh
    @dFruh 3 ปีที่แล้ว

    Thank you for making me aware of the new specflow plugin for rider!

  • @PaulSebastianM
    @PaulSebastianM 2 ปีที่แล้ว

    It's only harder to identify what went wrong with BDD if your Gherkin steps are not formulated correctly to be like something you would say to your domain experts. If something goes wrong, you only need to to stick a breakpoint before your scenario steps and verify that the steps are happening in accordance to the specs. But, yes, BDD does not mean you have to stop doing unit testing. If you feel like some classes need to be unit tested for tighter control, you can still do that.

  • @stefangranath3841
    @stefangranath3841 3 ปีที่แล้ว

    This is super interesting! Do you have any examples of authenticating by logging in an a wep page, then use cookies to authenticate and test towards a webapi?

  • @theincredibleillmo9385
    @theincredibleillmo9385 2 ปีที่แล้ว

    Can I find this technology in one of your courses?

  • @antonmartyniuk
    @antonmartyniuk 3 ปีที่แล้ว

    Nice video, keep on making new BDD videos

  • @MultiMrSaid
    @MultiMrSaid 3 ปีที่แล้ว

    now I cannot run projects : ) looks like its because of the missing features.cs file. any ideas how to solve it?

  • @sirdespin
    @sirdespin 3 ปีที่แล้ว

    What are the three pencil button at the rigth bottom corner of the text editor?

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว

      It allows you to change the highliting level on the fly

  • @lawrencechandrasekar9488
    @lawrencechandrasekar9488 3 ปีที่แล้ว

    Which IDE did u used ?

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว +1

      I'm using JetBrains Rider

  • @eltrukof
    @eltrukof 3 ปีที่แล้ว

    thanks for sharing!! following =)

  • @adrien8768
    @adrien8768 3 ปีที่แล้ว

    Can i have the code please. To make one demo for my team ?

  • @danielwilkowski5899
    @danielwilkowski5899 8 หลายเดือนก่อน

    What this guy is showing is not really BDD, he's just showing you how to use SpecFlow, and these aren't the same.

  • @danirdd92
    @danirdd92 3 ปีที่แล้ว

    7:10 logged in users (they) HAS a discount?!

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว

      Ah shoot I wanted to show how you can have matching on both it and they with the same attribute and I forgot! Basically you can add (it|they) or add a second attribute with different phrasing and they will both work. Can’t believe I forgot to show that

  • @DEBBAH1907
    @DEBBAH1907 3 ปีที่แล้ว +1

    this looks like too much overhead, is anyone even using this approach in a big scale real life project? nice video though.

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว

      Depends on what you mean big scale. Do you mean throughput? Then sure I’ve seen it used in systems that do thousands of requests per second. Do you mind size of individual project code base? Probably but I only work with micro services so I wouldn’t know.

  • @nmarcel
    @nmarcel 3 ปีที่แล้ว

    I disliked that english-like DSL, its looks like modern Cobol to me. I would prefer an internal C# DSL with fluent syntax to write the spec.

    • @nickchapsas
      @nickchapsas  3 ปีที่แล้ว +2

      Gherkin has been around for a long time and is a universal syntax across any underlying language. It makes it really easy for product people to write no matter the technology that the team is using behind the scenes

  • @wannabe-mechanic
    @wannabe-mechanic 3 ปีที่แล้ว

    it would be great if you explain it a little bit slower. you go way too fast, thanks

  • @54waterball
    @54waterball 3 ปีที่แล้ว

    first