Erreur test unitaire NUnit

Signaler
Messages postés
5
Date d'inscription
dimanche 25 février 2007
Statut
Membre
Dernière intervention
11 février 2012
-
Messages postés
11
Date d'inscription
mardi 28 septembre 2010
Statut
Membre
Dernière intervention
30 avril 2012
-
Bonjour,

J'essaie d'écrire un test unitaire d'un exemple qui utilise l'architecture MVP.
Lorsque je lance le test, j'ai le message d'erreur suivant:

UnitTests.Tests.testCopy:
Expected: "Testing ..."
But was: null

Je poste ci-dessous les bouts de code que j'ai fait:

namespace Copy
{
    public interface IView
    {
        string Copy { get; set; }
        string Original { get; }
        event EventHandler Changed;
    }
}



namespace Copy
{
    public class Presenter
    {
        private IView view;
        public Presenter(IView view)
        {
            this.view = view;
            this.view.Changed +=new EventHandler(OnChanged);
        }
 
        public void OnChanged(object sender, EventArgs e)
        {
            view.Copy = view.Original;
        }
    }
}





using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using NUnit.Mocks;
using Copy;
 
namespace UnitTests
{
    [TestFixture]
    public class Tests
    {
        private DynamicMock viewMock;
        private Presenter presenter;
 
        [SetUp]
        public void setup()
        {
            viewMock = new DynamicMock(typeof(IView));
            presenter = new Presenter((IView)viewMock.MockInstance);
        }
 
        [Test]
        public void testCopy()
        {
            viewMock.ExpectAndReturn("get_Original", "Testing ...");
            viewMock.Expect("get_Cpoy");
            Assert.AreEqual("Testing ...", ((IView)viewMock.MockInstance).Copy);
        }
    }
}





namespace Copy
{
    public partial class Form1 : Form, IView
    {
        private Presenter presenter;
 
        public Form1()
        {
            InitializeComponent();
            presenter = new Presenter(this);
            this.t_original.TextChanged += OnChanged;
        }
 
        public string Original
        {
            get { return t_original.Text; }
        }
 
        public string Copy
        {
            get { return t_copy.Text; }
            set { t_copy.Text = value;}
        }
 
        private void OnChanged(object sender, EventArgs e)
        {
            if (Changed != null)
                Changed(sender, e);
        }
 
        public event EventHandler Changed;
    }
}



Merci pour votre aide.

1 réponse

Messages postés
11
Date d'inscription
mardi 28 septembre 2010
Statut
Membre
Dernière intervention
30 avril 2012

La ligne est suivante est fausse
viewMock.Expect("get_Cpoy");

Il y a une erreur de frappe et cette méthode de renvoie rien.
Le code correct est:
viewMock.ExpectAndReturn("get_Copy", "Testing ...");