| Item | Value |
|---|---|
| Enabled | True |
| Severity | Warning |
| CodeFix | False |
Mocking interfaces requires generating a class on-the-fly that implements the interface. That generated class is constructed using the default constructor. To fix:
- Remove the constructor parameters
interface IMyService
{
void Do(string s);
}
var mock = new Mock<IMyService>("123"); // Moq1001: Mocked interfaces cannot have constructor parametersinterface IMyService
{
void Do(string s);
}
var mock = new Mock<IMyService>();If you just want to suppress a single violation, add preprocessor directives to your source file to disable and then re-enable the rule.
#pragma warning disable Moq1001
var mock = new Mock<IMyService>("123"); // Moq1001: Mocked interfaces cannot have constructor parameters
#pragma warning restore Moq1001To disable the rule for a file, folder, or project, set its severity to none
in the
configuration file.
[*.{cs,vb}]
dotnet_diagnostic.Moq1001.severity = noneFor more information, see How to suppress code analysis warnings.