Git Product home page Git Product logo

smarttests's Introduction

Smart Tests

Context

We all know how unit testing is important for non-regression of our softwares.

We all know that TDD (Test Driven Development) enables us to have better code and better management of the development process.

Fortunately, it is very easy to learn Testing Frameworks and to write unit tests technically.

BUT, it is very hard to think the good way to write unit test:

  1. How do I know how many tests to write?
  2. More, how do I know which cases we have to test?
  3. According to our Act code, it is very easy to assert that:
    1. A property changed, but how do we know if any other unexpected side effect occurred?
    2. A property changed, but how do we know if our test is still correct if anyone changed our Setup? For example, by giving the value you want to set as the initial value of your object?
  4. How can we show the expected effect of the Act code as we generally use hard coded values (because it is easier to code)?
  5. Finally, how can we do high level testing without multiple lines of code?

What is Smart Tests

Smart Tests is a library and a Visual Studio Analyzer to respond to all these questions... and more!

  1. The Act line of your test is instantly identifiable.
  2. You express your Act logical intent and the Analyzer will display all missing tests.
  3. You can use smarter assertions than the ones provided by usual Testing Frameworks as Smart Tests knows what is your Act and when it is run.
    1. You ensure that a PropertyChanged event is raised with only one line of code.
    2. You ensure that any event is raised with only one line of code.
    3. You ensure that an object didn't changed at all with only one line of code.
    4. You ensure that your property set is effective by checking its value after is not equal to its value before with only one line of code.
    5. You show each effect of your Act code relatively its previous value with only one line of code.

For now, it supports C# with NUnit, MSTest and Xunit.

However, it will very easy to add other Testing Frameworks (you only write a very simple sub-class).
You can also extend smart assertions in a very easily way.

Documentation

This documentation explains:

  1. What's new
  2. How to write your first Smart Test.
  3. How to test Class Members
  4. Criteria
  5. Cases
  6. Smart Assertions

With more advanced usages:

  1. Adding Criteria
  2. Extending Smart Assertions
  3. Supporting Other Testing Frameworks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.