gpt4 book ai didi

c# - 具有插件架构的应用程序中的单元测试插件

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:04 25 4
gpt4 key购买 nike

我正在创建一个具有插件架构的应用程序,我想为插件创建通用测试,因为扩展点定义明确。插件将有自己的测试来测试内部的东西。

创建这些测试的首选方法是什么,以便每个插件都不需要包含“明显”内容的测试?我感兴趣的是,如何根据单元测试框架进行此类测试。

如果有人向我指出一个开源项目,它应该足够了,它确实有这样的插件通用测试。我的应用程序是用 C#(和 MEF 进行组合)制作的,因此首选使用类似(强类型)语言(如 Java)编写的项目。

最佳答案

似乎将通用测试放入基类并为每个插件从中派生是一种可行的方法:

public interface IPluginComponent
{
}

[TestClass]
public abstract class BaseTests
{
protected abstract IPluginComponent CreateComponent();

[TestMethod]
public void SomeTest()
{
IPluginComponent component = this.CreateComponent();

// execute test
}
}

public class MyPluginComponent : IPluginComponent
{
}

[TestClass]
public class MyPluginTests : BaseTests
{
protected IPluginComponent CreateComponent()
{
return new MyPluginComponent();
}

[TestMethod]
public void CustomTest()
{
// custom test
}
}

使用 MSTest 的测试应该注意一个错误,如果基类位于不同的程序集中,则无法在基类中运行测试。这在 Visual Studio 2010 中未修复,不确定 2012:

Shared Unit Tests with MSTest

Visual Studio Test (MSTest) and lack of Inheritance support for base classes that resides in different assemblies

关于c# - 具有插件架构的应用程序中的单元测试插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com