New to Unit Testing

前端 未结 3 1370
北恋
北恋 2021-01-02 03:19

I would like to know how to implement unit testing in an existing (quite large) application using visual studio 2008 (.net 2.0).

I understand that developing unit te

相关标签:
3条回答
  • 2021-01-02 03:52

    One easy way to get tests going with existing code is to have a policy of writing a test when a bug is found.

    i.e

    • Find bug
    • Write test which recplicates bug
    • Fix
    0 讨论(0)
  • 2021-01-02 04:01

    I highly recommend reading this book: Working Effectively with Legacy Code if you want to make unit test for the existing code. It's also a good book on best-practices for unit tests in general.

    It is possible to do unit testing on existing projects, but you will have to make some adjustments here and there to make the code testable. Too much dependencies is often the problem.

    EDIT (after your comment) If you really want to embed unit testing into your development cycle then you should go for TDD (Test Driven Development). The aim here is to write your unit tests first, so you have a good understanding of what your classes will do. Of course these tests will fail, but the target is to get them working one by one. Do a google on TDD, there's plenty of information out there.

    0 讨论(0)
  • 2021-01-02 04:12

    Simple approach:

    • Pick one of unit test frameworks (Nunit, MbUnit, Xunit, VS unit test framework, ...)
    • Add project for unit tests in your solution (for example UnitTests).
    • Start writing tests.

    For easier organization, create at least one namespace for each project in solution, for example UnitTest.Project1, UnitTests.Project2, ... Depending on size of projects, add more levels to namespace.

    This way test project is part of solution. If you use some continuous integration tool, then tests can be automatically executed on each commit to source code repository.

    Edit:
    Regarding comment on MS Unit Test Framework problem with creating unit tests, there is know problem: "Create unit test" wizard does not work. It looks that there are unsupported types of projects that prevent unit test wizard from working correctly. I just tried with one solution that have one F# and several C# projects. I added unit testing project and tried to add tests. Test wizard had problems until I unloaded F# project. Then everything worked fine.

    0 讨论(0)
提交回复
热议问题