rspec/rules/S1186/vbnet/rule.adoc
Rudy Regazzoni 1763d7fe2b
Modify S1186: Migrate to LayC - empty methods (#3285)
## Review

A dedicated reviewer checked the rule description successfully for:

- [ ] logical errors and incorrect information
- [ ] information gaps and missing content
- [ ] text style and tone
- [ ] PR summary and labels follow [the
guidelines](https://github.com/SonarSource/rspec/#to-modify-an-existing-rule)
2023-10-18 18:21:32 +02:00

75 lines
1.5 KiB
Plaintext

== Why is this an issue?
:operationName: method
include::../description.adoc[]
=== Exceptions
The following empty methods are considered compliant:
* empty `Overridable` methods, as the implementation might not be required in the base class
* empty methods that override a `MustOverride` method as the implementation is mandatory for child class
* empty overrides in test assemblies for mocking purposes
== How to fix it
=== Code examples
==== Noncompliant code example
[source,vbnet,diff-id=1,diff-type=noncompliant]
----
Sub ShouldNotBeEmpty() ' Noncompliant - method is empty
End Sub
Sub NotImplementedYet() ' Noncompliant - method is empty
End Sub
Sub WillNeverBeImplemented() ' Noncompliant - method is empty
End Sub
Sub EmptyOnPurpose() ' Noncompliant - method is empty
End Sub
----
==== Compliant solution
[source,vbnet,diff-id=1,diff-type=compliant]
----
Sub ShouldNotBeEmpty()
DoSomething()
End Sub
Sub NotImplementedYet()
Throw New NotImplementedException
End Sub
Sub WillNeverBeImplemented()
Throw New NotSupportedException
End Sub
Sub EmptyOnPurpose()
' Do nothing because of X
End Sub
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Add a nested comment explaining why this method is empty, throw a NotSupportedException or complete the implementation.
'''
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]