TDD in C# From A to Z

所在平台: Udemy

课程主页: https://www.udemy.com/course/tdd-csharp/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:C# 从零到精通的测试驱动开发(TDD) 课程概述: 在当今的软件开发中,单元测试是每位专业开发者必备的技能。公司希望开发者能够编写单元测试,涵盖重要主题,如模拟和测试驱动开发(TDD)。本课程通过使用C#编程语言和NUnit框架,聚焦于实践TDD。学会单元测试和TDD,将为您掌握一个强大且实用的工具,使您能够编写可靠和可维护的应用程序。 课程内容与概述: 本课程主要面向已经掌握基本单元测试和依赖注入的开发者,需具备一定的C#编程经验。课程理论基础扎实,并辅以大量实践材料。课程内容包括: 1. TDD的基础:TDD的定义、必要性以及失败时的应对策略,TDD的三条法则、不同类型的测试及相关工具等理论知识。 2. 实践编程:课程后续部分将通过多个编程示例,包括生成斐波那契数列、FizzBuzz、罗马数字解析、可更新的旋转同步原语、井字棋等,帮助学生切身体验TDD。 3. TDD技巧:学习如何流畅实践TDD的捷径,主要的TDD技术,包括伪造、三角化和显而易见的实现,如何选择优先编写的测试。 4. 接受测试及工具:介绍SpecFlow接受测试框架,如何使用Gherkin语言编写接受测试,UI测试及其工具。 5. 编程Kata:了解代码Kata的概念,并展示三种代码Kata,强调先编写测试的重要性。 6. 真实项目实践:展示如何在企业环境中运用所学知识,构建UI与业务逻辑之间的桥梁,实行接受测试。 此外,课程最后两部分将讨论一些哲学问题,包括:TDD的终极含义、TDD与敏捷开发的关系、单元测试的有效性及测试质量衡量标准等。 教学方法: 本课程强调简洁明了,无废话,尊重学习者的时间。课程内容覆盖全面,重要主题深入讲解。完成课程后,您将对此感到满意。

课程评论(0条)

课程详情

Today unit testing is the absolutely required skill which is required from any professional developer. Companies expect from developers to know how to write unit tests including all the most important topics such as mocking and test driven development (TDD in short).This course is all about practicing TDD using C# programming language and NUnit as a unit testing framework. Along the way, we will learn the concepts related to unit testing. This course does not cover all the features of NUnit. This course is way more interesting.Learning unit testing and TDD puts a powerful and very useful tool at your fingertips. Being familiar with unit testing and TDD you can write reliable and maintainable applications. It is very hard to lead a project which is not covered by unit tests.Content and Overview This course is primarily aimed at developers who're already familiar with the basics of unit testing and dependency injection. Some experience in C# programming is required. The course provides solid theoretical base reinforced by tons of practical material.We start with basics of test-driven development. Why we need TDD? What is TDD? When TDD fails, three laws of TDD, different types of tests, tooling and other fundamental topics. This section is mostly theoretical. Theory is dead without practice, so starting from the second section, you'll see tons of programming sessions where I'll demonstrate how to implement generating of Fibonacci numbers, FizzBuzz, parsing of roman numerals, updateable spin synchronization primitives, tic-tac-toe or crosses and noughts game and game in sticks. You'll also learn: How a regular agile development process looks like That you need to learn shortcuts to practice TDD more smoothly Three Main TDD techniques: faking, triangulation and obvious implementation Which tests to write first How to start writing a test in a TDD manner Stack kata Immutable stack kata And list kata What is acceptance testing About the SpecFlow acceptance testing framework How to write acceptance tests with SpecFlow in Gherkin language What are UI tests What tools for writing UI Tests exist How to access UI through the TestStack.White framework Have you heard about katas? No, I'm talking about programming. In the third section, you'll learn what is a code kata and I'll demonstrate three code katas: Growing an application by writing tests first, we're not only writing unit tests first. So, in the next section, you'll learn what is acceptance testing and integration testing. You'll learn: You'll need to see how to apply all the material learned by this moment. Practice helps very much with understanding especially when we uncover highly practical topics such as TDD. That's why I decided to show you how all the things work in practice altogether. So, in the next section, you'll see a real enterprise approach for working on a software project in action. I'll build a bridge to UI through TestStack.White applying the Page Object design pattern I'll write acceptance tests using the bridge built for accessing UI I'll implement ViewModels and all the corresponding business-logic What is TDD in the end? Is it possible to live without it? The relationships between TDD and Agile development process Should we design architecture upfront or not? Do unit tests guarantee the success? Quality of tests, some criterions How to express data for writing unit tests Shouldly for writing more readable assertions Singletons, Static classes and testability, Builder design pattern And some other important topics The last two sections are rather philosophical. We will discuss: What is TDD in the end? Is it possible to live without it? The relationships between TDD and Agile development process Should we design architecture upfront or not? Do unit tests guarantee the success? Quality of tests, some criterions How to express data for writing unit tests Shouldly for writing more readable assertions Singletons, Static classes and testability, Builder design pattern and some other important topicsHere is my Teaching Approach -No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth.Take this course, and you will be satisfied.

课程标签

0人关注该课程

主题相关的课程