Модульные тесты C #

Я должен сделать серию модульных тестов, и я только начинаю, и я не уверен, как их выполнять.

У меня есть интерфейс IPersona с некоторыми методами, и я проверяю, что:

string nombreCompleto();

И класс Persona выглядит следующим образом:

    private string nombre;
    private string apellido;
    private int edad;
    private int kmRecorridos;
    private bool vivo;
    private Persona pareja;

    public Persona()
    {
        this.nombre = "";
        this.apellido = "";
        this.edad = 0;
        this.kmRecorridos = 0;
        this.pareja = null;
        nacer();
    }

    public Persona(string n, string a, int e)
    {
        this.nombre = n;
        this.apellido = a;
        this.edad = e;
        this.pareja = null;
        this.kmRecorridos = 0;
        nacer();
    }

    public string nombreCompleto()
    {
        return "Nombre Completo: " + this.nombre + " " + this.apellido;
    }

Я делаю следующий тест, но я пробовал кое-что, и я не знаю, как сделать его успешным:

    [TestMethod]
    public void TestMethod1()
    {
        var mockPersona = new Mock<IPersona>();

        mockPersona.Setup(x => x.nombreCompleto()).Returns("Nombre completo " + "" + " " + "");

        IPersona persona = (IPersona) new Persona();           

        Assert.AreEqual(persona.nombreCompleto(), ((IPersona) mockPersona.Object).nombreCompleto());
    }
2
задан 29.11.2019, 12:38
1 ответ

Уже будь решен. Была у одного pequeГ±o ошибка в .Setup(), которая цепь, которая происходила с ним, не была довольно письменной.

С другой стороны, я реализовал тест другой формы:

    [TestMethod]
    public void TestNombreCompleto()
    {
        var mockPersona = new Mock<IPersona>();

        mockPersona.Setup(x => x.nombreCompleto()).Returns("Nombre Completo: " + "Juan" + " " + "Perez");

        Persona p = new Persona();
        p.setNombre("Juan");
        p.setApellido("Perez");
        IPersona persona = (IPersona) p ;           

        Assert.AreEqual(persona.nombreCompleto(), ((IPersona) mockPersona.Object).nombreCompleto());
    }

И asГ - оно функционировало. Я надеюсь, что он служит помощью до будущих проблем.

2
ответ дан 01.12.2019, 10:38