我有一个接口
我想做这样的事情(请注意属性
这是可能的吗?
IAudioProcessor
,其中包含一个方法IEnumerable<Sample> Process(IEnumerable<Sample> samples)
。虽然这并不是接口本身的要求,但我希望确保所有我的实现都遵循一些通用规则,例如:
- 使用延迟执行
- 不更改输入样本
我想做这样的事情(请注意属性
GenericTest
和类型参数):[GenericTest(typeof(AudioProcessorImpl1Factory))]
[GenericTest(typeof(AudioProcessorImpl2Factory))]
[GenericTest(typeof(AudioProcessorImpl3Factory))]
public class when_processed_audio_is_returned<TSutFactory>
where TSutFactory : ISutFactory<IAudioProcessor>, new()
{
static IAudioProcessor Sut = new TSutFactory().CreateSut();
protected static Context _ = new Context();
Establish context = () => _.Original = Substitute.For<IEnumerable<ISample>>();
Because of = () => Sut.Process(_.Original);
It should_not_have_enumerated_the_original_samples = () =>
{
_.Original.DidNotReceive().GetEnumerator();
((IEnumerable)_.Original).DidNotReceive().GetEnumerator();
};
}
这是可能的吗?