Your SlideShare is downloading. ×
0
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Testing Everything for ASP.NET MVC Applications
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Testing Everything for ASP.NET MVC Applications

3,052

Published on

From CodeStock 2013 - There are many kinds of testing for ASP.NET MVC applications. Find out about unit testing JavaScript with Jasmine, unit testing C# with SpecsFor, and end-to-end testing all the …

From CodeStock 2013 - There are many kinds of testing for ASP.NET MVC applications. Find out about unit testing JavaScript with Jasmine, unit testing C# with SpecsFor, and end-to-end testing all the pieces together with SpecsFor.Mvc.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,052
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Testing Everything for ASP.NET MVC Applications Matt Honeycutt @matthoneycutt http://trycatchfail.com
  • 2. Not this kind of testing…
  • 3. What we’ll cover: • Required Tools • Testing an ASP.NET MVC controller 1) Unit Testing C# • Required Tools • Testing a Knockout view model • Testing jQuery and DOM manipulation 2) Unit Testing JavaScript • Intro to SpecsFor.Mvc • Implementing a new feature TDD-style 3) End-to-End Testing
  • 4. Heroic Support Support Request •E-mail •Website Tracking •See what’s waiting •Tag and categorize Response •Reply via E-mail •See conversations
  • 5. Given-When-Then Given… • a ticket exists When… • a user views the ticket Then… •It displays the ticket title •It displays the ticket body •It displays the submitter’s name Given a ticket exists, when a user views the ticket, then it displays the ticket title, it displays the ticket body, and it displays the submitter’s name.
  • 6. Unit-Testing with C# in ASP.NET MVC
  • 7. Base Class for Specs • Built on NUnit • Auto-mocking container • Supports DRY testing with Spec-style tests • Use as little or as much as you want Includes Solutions to Common Problems • Moq – Mocking framework • Should – Assertion extension methods • ExpectedObjects – Compare objects cleanly Additional Helpers • Additional assertion extension methods • Extensions simplify to Moq and ExpectedObjects
  • 8. Demo: Testing an MVC Action Given… • No state When… • Someone submits a new ticket Then… • It displays a success message • It saves the ticket • It redirects back to the dashboard When someone submits a new ticket, it displays a success message, it saves the ticket, and it redirects back to the dashboard
  • 9. Another example Given… • a ticket exists When… • a user views the ticket Then… •It displays the ticket title •It displays the ticket body •It displays the submitter’s E-mail Given a ticket exists, when a user views the ticket, it displays the ticket title, it displays the ticket body, and it displays the submitter’s E-mail.
  • 10. Testing JavaScript with
  • 11. Given-When-Then Given… • a ticket view model When… • saving tags Then… • it saves tags to the server • it displays a success message Given a ticket view model, when saving tags, it saves tags to the server, and it displays a success message.
  • 12. Jasmine Specifications Describe… • a ticket view model Describe… • when saving tags It… • saves tags to the server • displays a success message Given a ticket view model, when saving tags, it saves tags to the server, and it displays a success message.
  • 13. Unit-Testing a Knockout View Model
  • 14. ASP.NET Application Host • Built on IIS Express • Deploy and host your app when you run your tests • Includes a “stub” SMTP server Abstraction Over Selenium Web Driver • Handles browser driver management • Provides simplified API for common operations Strongly-Typed API for Browser Automation • Unit-test like syntax • Navigation and page manipulation based on lambda expressions End-to-End Tests with…
  • 15. Authentication Given… • a user exists When… • logging in with valid credentials Then… • it redirects to the dashboard Given a user exists, when logging in with valid credentials, it redirects to the dashboard.
  • 16. End-to-End Tests for ASP.NET MVC
  • 17. Replying to a Ticket Given… • there is an existing ticket When… • when replying to the ticket Then… • it sends the response to the submitter • it displays the response on the ticket Given there is an existing ticket, when replying to a ticket, then it sends the response to the submitter and displays the response on the ticket.
  • 18. Test your client-side JavaScript Test your server-side C# Test your app end-to-end
  • 19. Want More? • Last session of the day, learn about cloud-enabling this app! Come see me tomorrow! • Install SpecsFor and SpecsFor.Mvc • @matthoneycutt Ping me online: • http://trycatchfail.com Follow my blog:

×