mardi 9 juin 2015

Is there another way to unit test business logic in mvc

i have added a unit test to a mvc5 application manually. this is my businesslogic

 public void AddTreatments(TreatmentView model)
    {
        using(var treatment= new TreatmentRepository())
        {
            var treat = new PhysiqueData.ModelClasses.Treatment();
            {
                treat.treatmentID = model.treatmentID;
                treat.treatmentCost = model.treatmentCost;
                treat.treatmentDuration = model.treatmentDuration;
                treat.treatmentName = model.treatmentName;
            }
            treatment.Insert(treat);
        }

    }

this is my repository used in the srvice layer

    public class TreatmentRepository:ITreatmentRepository
{
    private ApplicationDbContext _datacontext;
    private readonly IRepository<Treatment> _treatmentRepository;

    public TreatmentRepository()
    {
        _datacontext = new ApplicationDbContext();
        _treatmentRepository = new RepositoryService<Treatment>(_datacontext);

    }
     public void Insert(Treatment model)
    {
        _treatmentRepository.Insert(model);
    }

the next code is my actual unit test for my treatment and it is not working, please can i get some guidance on it.i googled alot of things and still can,t get it right

      [TestClass]
public class UnitTest1
{
    [TestMethod]
    public void AddingTreatmenttodatabase()
    {
        //var business = new TreatmentBusiness(new TreatmentRepository());

        var treatment = new Treatment()
        {
            treatmentID=1,
            treatmentCost = 250,
            treatmentDuration = 45,
            treatmentName = "LowerBack"

        };

        var repositoryMock = new Mock<ITreatmentRepository>();
        repositoryMock.Setup(x => x.Insert(treatment));

        var business = new TreatmentBusiness(repositoryMock.Object);

        business.AddTreatments(treatment);

        repositoryMock.Verify(x => x.Insert(treatment), Times.Once());




    }

any assistance will of great help

Aucun commentaire:

Enregistrer un commentaire