gpt4 book ai didi

c# - MVC Action 属性测试

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

我有一个具有以下操作的 MVC3 应用程序。

public class FooController : ApplicationController
{
[My(baz: true)]
public void Index()
{
return view("blah");
}
}

我可以使用 MVCContrib 的 TestHelper 以这种方式编写测试来验证索引是否使用 MyAttribute 修饰。

[TestFixture]
public class FooControllerTest
{
[Test]
public void ShouldHaveMyAttribute()
{
var fooController = new FooController();
fooController.Allows(x => x.Index(), new List<Type>{typeof(MyAttribute)});
}
}

问题 - 如何更改此测试以测试 MyAttribute 装饰包含属性“baz”为真?

最佳答案

如果您想在单元测试中验证该属性,则需要使用反射来检查您的 Controller 方法,如下所示。

[TestFixture]
public class FooController Tests
{
[Test]
public void Verify_Index_Is_Decorated_With_My_Attribute() {
var controller = new FooController ();
var type = controller.GetType();
var methodInfo = type.GetMethod("Index");
var attributes = methodInfo.GetCustomAttributes(typeof(MyAttribute), true);
Assert.IsTrue(attributes.Any(), "MyAttribute found on Index");
Assert.IsTrue(((MyAttribute)attr[0]).baz);
}
}

这对你有帮助

关于c# - MVC Action 属性测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276188/

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