只是一个例子:我有一个对设置属性做出反应的类。更具体地说,一旦全部设置完毕,就会从其中加载程序集的三个属性。之后触发一个事件。
我对此行为的单元测试如下所示:
bool assemblyLoaded = false;
loader.AssemblyLoaded += () => assemblyLoaded = true;
loader.Type = "someType";
Assert.IsFalse(assemblyLoaded); // not loaded, only one property was set
这将导致三个单元测试,每个属性一个测试。所以我想通过使用帮助方法(见下文)来抽象测试以避免代码复制:
private void Testfoobar(Action setProperty)
{
bool assemblyLoaded = false;
loader.AssemblyLoaded += (sender, args) => assemblyLoaded = true;
setProperty();
}
不幸的是,我无法将属性分配设为操作。
所以,我想知道,你能以某种方式将作业“转换”为行动吗?或者是否有不同的方法来抽象代码?