rspec/rules/S1186/vbnet/rule.adoc

75 lines
1.5 KiB
Plaintext
Raw Permalink Normal View History

== Why is this an issue?
2023-06-09 14:51:36 +02:00
:operationName: method
2020-06-30 12:47:33 +02:00
include::../description.adoc[]
2020-06-30 12:47:33 +02:00
=== Exceptions
2020-06-30 12:47:33 +02:00
2023-06-09 14:51:36 +02:00
The following empty methods are considered compliant:
2023-06-09 14:51:36 +02:00
* 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[]