c # Как проверить наследование класса Abstract с защищенными методами с помощью xunit - PullRequest
0 голосов
/ 25 ноября 2010

Предположим, что у меня есть открытый класс A и абстрактный класс B, такой что B содержит только защищенные методы. Теперь позвольте A наследовать от B.

Теперь мой вопрос: как мне (или мне) проверить, наследует ли A от B.

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

Используя полиморфизм, вы наверняка сможете сделать следующее:

public class ClassB {
    protected MethodB() {
    }
}

public class ClassA : ClassB {
}


[TestFixture()]
public class TestA {
    [Test()]
    public void IsInstanceOfB() {
        ClassA a = new ClassA();
        Assert.IsInstanceOf(typeof(ClassB), a);
    }
}

То есть, используя NUnit, я думаю, может быть аналогичный подход с xUnit.

1 голос
/ 25 ноября 2010

Проблема здесь заключается в видимости этих защищенных методов.Вы не сможете вызывать их напрямую в своем модульном тесте.С другой стороны, вы можете написать класс C в своем модульном тесте, который наследуется от A и предоставляет некоторые открытые методы для целей теста.Эти открытые методы просто вызовут защищенные методы, которые вы пытаетесь протестировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...