我正在尝试通过添加一些 Selenium 功能来扩展 xUnit 断言方法
namespace MyProject.Web.Specs.PageLibrary.Extensions
{
public static class AssertExtensions
{
public static void ElementPresent(this Assert assert, ...)
{
if (...)
{
throw new AssertException(...);
}
}
}
}
但是当我尝试使用它时出现这个编译错误。
using MyProject.Web.Specs.PageLibrary.Extensions;
using Xunit;
...
public void DoSomething()
{
Assert.ElementPresent(...);
}
和错误
Error 5 'Xunit.Assert' does not contain a definition for 'ElementPresent'
有谁知道这是否可能或我哪里出错了?
最佳答案
您需要将作为此参数传递给扩展方法的对象实例。
在您的情况下,这将是正确的语法
var assert = new Assert();
assert.ElementPresent(...);
但我想你不需要甚至不能创建 Assert 类的实例。
您要做的是将扩展方法调用为扩展类上的静态调用,但这是行不通的。
但为什么不简单地打电话
AssertExtensions.ElementPresent(...);
关于c# - 使用新断言扩展 XUnit Assert 类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16194952/