[英]How to unit test a method that returns Action<AuthenticationOptions>?
我试图对该返回Action<SomeOptions>
方法进行单元测试。
public class MyOption
{
public Action<SomeOptions> GetOptions()
{
return new Action<SomeOptions>(o =>
{
o.Value1 = "abc";
o.Value2 = "def";
}
);
}
}
我想在测试中验证Value1
为"abc"
, Value2
为"def"
[Test]
public void GetOptions_ReturnsExpectedOptions()
{
var option = new MyOption();
Action<SomeOptions> result = option.GetOptions();
//Assert
Assert.IsNotNull(result);
//I also want to verify that the result has Value1="abc" & Value2 = "def"
}
我不确定如何测试验证结果是否具有Value1="abc"
和Value2 = "def"
那部分代码
正如@Igor所说,您必须调用该动作并检查该动作的结果。 尝试这个:
[Test]
public void GetOptions_ReturnsExpectedOptions()
{
var option = new MyOption();
Action<SomeOptions> result = option.GetOptions();
//Assert
Assert.IsNotNull(result);
//Assign SomeOptions and pass into the Action
var opts = new SomeOptions();
result(opts);
Assert.AreEqual("abc", opts.Value1);
Assert.AreEqual("def", opts.Value2);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.