![]() |
1
9
为了让ActionFilter自动调用,您需要运行控制器操作调用程序。这是可能的,但这意味着MVC框架将尝试并执行结果。这意味着您必须使用模拟来阻止结果的执行。同样,这是可能的,但这意味着单元测试变得比实际的代码更模拟。直接测试过滤器可能更正确。毕竟,调用OnActionExecuting是框架的一个特性,您不需要对框架本身进行单元测试。 但我认为您真正要说的是,您想要测试什么是准确性,并且除非actionfilter已经执行,否则该操作无法工作。 首先,我会问一些关于这个设计的问题。 这是正确的吗? 可能是这样。例如,合理的做法是,具有authorize属性的操作可以假定在执行时有一个登录用户。当然,这一行动应该对这一点进行检验,但这种假设是安全的。另一方面,操作可能不需要过滤器来执行特定于操作的初始化。所以你应该问这个问题,但答案是设计是正确的。 在这种情况下,单元测试的最佳决策可能是在单元测试中手动执行过滤器,以及 编写一个单独的单元测试来证明该操作是用正确的属性修饰的。 |
![]() |
2
0
下面是如何编写这样的单元测试
|
![]() |
mg610 · 如何开始C++单元测试 2 年前 |
![]() |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
![]() |
shilin agre · 在Python中测试修饰函数 2 年前 |
![]() |
SlipScout · Unittest只传递单个值,而不是获取多个值 2 年前 |
![]() |
Alex · 从实际对象的实例返回默认模拟结果 2 年前 |