+ All Categories
Home > Technology > ASP.NET 5 & Unit Testing

ASP.NET 5 & Unit Testing

Date post: 28-Jan-2018
Category:
Upload: shahed-chowdhuri
View: 4,840 times
Download: 1 times
Share this document with a friend
42
Build Robust Web Apps in the Real World @shahedC WakeUpAndCode.com
Transcript
Page 1: ASP.NET 5 & Unit Testing

Build Robust Web Apps in the Real World

@shahedC

WakeUpAndCode.com

Page 2: ASP.NET 5 & Unit Testing
Page 3: ASP.NET 5 & Unit Testing

Why Unit Testing?

> Getting Started

> Writing and Running Tests

> Mocking

What’s Next?

Page 4: ASP.NET 5 & Unit Testing
Page 5: ASP.NET 5 & Unit Testing

> Nothing

new to learn

> Error-prone

> Expensive

> Slower

Page 6: ASP.NET 5 & Unit Testing

> Less human

error

> Faster!

> Decreasing

costs

> Learning curve

Page 7: ASP.NET 5 & Unit Testing

LegacyNew/

Improved

• SRP

• OCP

• LSP

• ISP

• DIP

Page 8: ASP.NET 5 & Unit Testing

Source: https://msdn.microsoft.com/en-us/library/jj159342.aspx

Page 9: ASP.NET 5 & Unit Testing

Why Unit Testing?

> Getting Started

> Writing and Running Tests

> Mocking

What’s Next?

Page 10: ASP.NET 5 & Unit Testing
Page 11: ASP.NET 5 & Unit Testing
Page 12: ASP.NET 5 & Unit Testing

Unit Tests

Integration Tests

UI Tests

Page 13: ASP.NET 5 & Unit Testing
Page 14: ASP.NET 5 & Unit Testing
Page 15: ASP.NET 5 & Unit Testing
Page 16: ASP.NET 5 & Unit Testing
Page 17: ASP.NET 5 & Unit Testing
Page 18: ASP.NET 5 & Unit Testing

xUnit.net references

Web App being tested

Page 19: ASP.NET 5 & Unit Testing
Page 20: ASP.NET 5 & Unit Testing

public test class [Fact] for public methods without parameters

[Theory] and [InlineData] for methods with parameters

Page 21: ASP.NET 5 & Unit Testing

Build Solution

Run Tests in Test Explorer

Page 22: ASP.NET 5 & Unit Testing

Verify actual result against expected result

Note “var” keyword

Page 23: ASP.NET 5 & Unit Testing

Verify that expected view equal to returned view

Page 24: ASP.NET 5 & Unit Testing
Page 25: ASP.NET 5 & Unit Testing

Temporarily ignore tests with an optional message.

Page 26: ASP.NET 5 & Unit Testing

Correct

Views?

Redirect

to URL?

Correct

Models?

HTTP

Code?

Mock

Depen-

dencies!

Model

Populated?

Page 27: ASP.NET 5 & Unit Testing
Page 28: ASP.NET 5 & Unit Testing
Page 29: ASP.NET 5 & Unit Testing
Page 30: ASP.NET 5 & Unit Testing

Mocks

Pre-programmed with expected results, doesn’t

actually connect to DB, behavior verification.

Fakes

Working examples, but not production-ready

(e..g in-memory database)

Stubs

Provides canned answers

http://martinfowler.com/articles/mocksArentStubs.html

Page 31: ASP.NET 5 & Unit Testing
Page 32: ASP.NET 5 & Unit Testing
Page 33: ASP.NET 5 & Unit Testing
Page 34: ASP.NET 5 & Unit Testing

Smoke

Tests

New

Features

Edge

Cases

Page 35: ASP.NET 5 & Unit Testing

Cost of Adding

Unit Tests

Cost of Not

Having Unit

Tests

Bugs

Features

Expenses

Page 36: ASP.NET 5 & Unit Testing

Dependency

Injection

Inversion of Control

Page 37: ASP.NET 5 & Unit Testing

Views & ViewModels

Controllers

Service Layer

Repository Layer

Entity Framework (ORM)

SQL Server (database)

Page 38: ASP.NET 5 & Unit Testing
Page 39: ASP.NET 5 & Unit Testing

60 to 80% coverage ok?

Page 40: ASP.NET 5 & Unit Testing
Page 41: ASP.NET 5 & Unit Testing

Why Unit Testing?

> Getting Started

> Writing and Running Tests

> Mocking

What’s Next?


Recommended