0

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

例如。我有一个联系课程。我有 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);

            }

        }
    }

这样,如果我忘记进行测试,它将无法通过此测试,然后由我负责。对此有什么想法吗?

4

2 回答 2

6

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

于 2012-11-19T16:29:23.173 回答
3

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

于 2012-11-19T16:33:21.283 回答