Edit on GitHub

xUnit2018 Warning

Do not compare an object's exact type to an abstract class or interface

Cause

This rule is triggered by using Assert.IsType with an interface or abstract type.

Reason for rule

The check for Assert.IsType is an exact type check, which means no value can ever satisfy the test.

How to fix violations

To fix a violation of this rule, you may:

Examples

Violates

using System;
using Xunit;

public class xUnit2018
{
    [Fact]
    public void TestMethod()
    {
        var result = new object();

        Assert.IsType<IDisposable>(result);
    }
}

Does not violate

using System;
using Xunit;

public class xUnit2018
{
    [Fact]
    public void TestMethod()
    {
        var result = new object();

        Assert.IsAssignableFrom<IDisposable>(result);
    }
}
using System;
using Xunit;

public class xUnit2018
{
    [Fact]
    public void TestMethod()
    {
        var result = new object();

        Assert.IsType<object>(result);
    }
}
Copyright © .NET Foundation. Contributions welcomed at https://github.com/xunit/xunit/tree/gh-pages.