我想使用 FluentAssertions 来测试所有没有用 NonActionAttribute 修饰的方法。(这将减少由 T4MVC 作为占位符自动生成的操作方法集。)
我的具体问题是将 MethodInfoSelector 方法链接在一起。我想写这样的东西:
public MethodInfoSelector AllActionMethods() {
return TestControllerType.Methods()
.ThatReturn<ActionResult>()
.ThatAreNotDecoratedWith<NonActionAttribute>();
}
public static MethodInfoSelector ThatAreNotDecoratedWith<TAttribute>(this IEnumerable<MethodInfo> selectedMethods) {
return (MethodInfoSelector)(selectedMethods.Where(method => !method.GetCustomAttributes(false).OfType<TAttribute>().Any())); // this cast fails
}
转换失败,或者如果我将结果转换为 IEnumberable,我无法链接其他 MethodInfoSelector 方法。
对于如何生成 MethodInfoSelector 或针对列出没有特定属性的方法的潜在问题的不同方法,我将不胜感激。