Download presentation
1
Unit Testing ASP.Net MVC
Craig Berntson Mojo Software Worx
2
Thanks to our Sponsors! To connect to wireless
1. Choose Uguest in the wireless list 2. Open a browser. This will open a Uof U website 3. Choose Login
3
Ego stuff Organizer, Utah Code Camp
Author, “Continuous Integration in .Net” Conference & event speaker INETA Community Speaker ComponentOne Community Influencer Columnist, DNC Magazine 17 time Microsoft MVP Chief Software Gardener Mojo Software Worx Salt Lake City
4
Problem with… if switch for foreach while do…while
5
Worse than you think In 1976, G.J. Meyers described a 100-line program that had unique paths. In 1979 he described a much simpler program. It was just a loop and a few IF statements. In most languages, you could write it in 20 lines of code. This program has 100 trillion paths Testing Computer Software, Cem Kaner
6
How do you test this?
7
Agenda What we won’t talk about What we’ll talk about TDD
Javascript testing Production ready code What we’ll talk about Setup tests Remove database Keep it simple
8
Demo: Sample Application
9
Unit test framework MSTest NUnit xUnit Others
10
Unit test runner MSTest NUnit Resharper NCrunch Others
11
Demo: Our first test
12
Default Data access Difficult to test There is no IDbContext
Controller Context Entity Framework Difficult to test There is no IDbContext DbContext tightly bound to EF (EntityFramework.dll)
13
Removing database access
Repositories Mocks Dependency Injection
14
Repositories Easy to test IRepository Extrapolate away from Context
Controller Repository Context Entity Framework Easy to test IRepository Extrapolate away from Context
15
Mocks Controller Repository Mock Allows us to fake the database
16
Testing vs. runtime Controller Repository Mock Context
Entity Framework
17
How we normally instantiate
Class1 Class2 new Class2()
18
Dependency injection Class1 ClassA IClass2() ClassA : IClass2
19
Dependency injection Allows for loose coupling
Inversion of control (IOC) IOC Container
20
Demo: Removing Database access
21
Selectlist ViewBag ViewModel Automapper
22
Demo: SELECTLIST
23
Ajax & json AJAX calls into the controller JSON returns result
24
Demo: ajax & json
25
Next steps? My blog Art of Unit Testing Udemy.com Katas TDD
26
Review Arrange – Act – Assert In memory Repositories Mocks
Dependency Injection Automapper
27
Questions? craig@craigberntson.com @craigber
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.