如何测试是否所有子类都已经过测试

时间:2012-11-19 16:26:10

标签: c# unit-testing class tdd subclass

所以我不记得为我创建的新类进行单元测试。我尽力坚持TDD,但有时我会忘记。我很擅长运行测试(因为它只是一个按钮)所以有没有办法扫描所有类的命名空间,并检查它们是否来自已知的类。

例如。我有一个Contact课程。我有3个子类联系(运输,计费,服务)我有一个单元测试所有3.让我们说从现在起一个月我决定从联系人派出另一个班级。我非常擅长记得运行我的单元测试,但在这种情况下,我希望它只能通过1次测试来提醒我为我的新联系类编写单元测试。像。的东西。

    [TestMethod, TestCategory("Contact")]
    public void TestAllContactsAccountedFor()
    {
        foreach(class c in theNamespace)
        {
            bool subclassOfContact = c is  Contact;
            if (subclassOfContact)
            {
                bool knownSubclass = (c is CustomerShippingContact) || (c is CustomerBillingContact) || (c is CustomerServiceContact);
                Assert.IsTrue(knownSubclass);

            }

        }
    }

这样,如果我忘记进行测试,它将无法通过此测试,然后我会对其进行说明。关于这个的任何想法?

2 个答案:

答案 0 :(得分:6)

我建议您调查使用测试的覆盖范围,而不是使用Code解决此问题。 特别是看看nCrunch,它将标记已经在测试中使用的代码库的行,因此您可以轻松识别需要mroe测试编写的内容。见http://ncrunch.net

答案 1 :(得分:3)

您应该尝试Mighty Moose a.k.a. ContinuousTests它实际上警告您未经测试的代码,并且是唯一免费的.NET代码覆盖工具。