首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不同实现的相同单元测试

不同实现的相同单元测试
EN

Stack Overflow用户
提问于 2013-03-22 19:57:02
回答 6查看 2K关注 0票数 18

假设我有两个搜索算法的实现,它们为相同的输入返回相同的结果。它们都实现相同的接口。

我如何使用单个[TestClass]来测试两种实现,而不是创建两个最终具有相同逻辑的测试文件?

我可以告诉MSUnit用不同的构造函数参数启动一个测试两次吗?

也许我应该以某种方式注入它?

EN

Stack Overflow用户

发布于 2017-05-20 02:36:08

基于我的测试的澄清。

只要抽象类和具体类在同一个程序集中,公认的答案(使用抽象类)就可以工作。

如果您希望将抽象类和具体类放在不同的程序集中,不幸的是,KarlZ提到的方法似乎是必要的。不知道为什么会这样。在这种情况下,TestExplorer不会显示TestMethod。

而且,可接受的答案使用了嵌套在抽象类中的具体类。这似乎不是必需的。

使用MSTestV2 (1.1.17)、VS2017进行测试。下面是使用的示例类。

代码语言:javascript
运行
复制
Assembly 1
    [TestClass]
    public abstract class SampleExternal
    {
        [TestMethod]
        public void SampleTest01()
        {
            Assert.IsTrue(false, this.GetType().Name);
        }
    }

Assembly 2
    [TestClass]
    public abstract class Sample
    {
        [TestMethod]
        public void SampleTest01()
        {
            Assert.IsTrue(false, this.GetType().Name);
        }

        [TestClass]
        public class SampleA : Sample
        {
        }
    }

    [TestClass]
    public class SampleB : Sample
    {
    }

    [TestClass]
    public class SampleC : SampleExternal
    {
    }

    [TestClass]
    public class SampleD : SampleExternal
    {
    }

使用这些测试,SampleA和SampleB的测试将会执行(并且设计失败),但是SampleC & SampleD不会。

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15569732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档