Comments (4)
@dtchepak I am trying to add valid test case for this scenario and I came up with this
using NSubstitute;
using System;
using Xunit;
namespace MyNamespace
{
public class Foo
{
public event Action SomeEvent;
}
public class FooTests
{
[Fact]
public void Test()
{
var substitute = NSubstitute.Substitute.For<Foo>();
substitute.Received().SomeEvent += Arg.Any<Action>();
}
}
}
However, this test passes, even though SomeEvent was not fired - according to docs
it is one of the way of asserting if event subscription was received. Is this valid test case in this case or there is regression in NSubstitute?
from nsubstitute.analyzers.
This is because the member is not virtual. Running multiple tests including this one gives me:
Error Message:
NSubstitute.Exceptions.RedundantArgumentMatcherException : Some argument specifications (e.g. Arg.Is, Arg.Any) were left over after the last call.
If it is virtual
it fails as expected.
Error Message:
NSubstitute.Exceptions.ReceivedCallsException : Expected to receive a call matching:
SomeEvent += any Action
Actually received no matching calls.
from nsubstitute.analyzers.
Ahh right. I dont know why I thought that events were handled differently. Will update my PR accordingly
from nsubstitute.analyzers.
Can you release an update with this fix to NuGet, please?
from nsubstitute.analyzers.
Related Issues (20)
- Respect VS naming styles when introducing substitute HOT 3
- Add .netstandard2.0 target to NSubstitute.Analyzers.CSharp HOT 1
- False positive on NS5000 when received method is static. HOT 3
- Make benchmarks discoverable by Benchmark.NET again
- NS1004 warning, when using static wrapper class HOT 2
- NS2002 falsely triggered when substituting an interface HOT 5
- Make NS1004 distinguish between non-virtual members and extension methods HOT 1
- Detect non virtual received checks for event subscription
- Analyzer for misuse of `Arg.Any<T>` in xunits `Asert.Throws<T>`? HOT 1
- NS2003 false-positive when InternalsVisibleTo is defined in .csproj HOT 1
- False positive NS5000 for async Received() calls HOT 2
- Disable CallInfo analysis when Arg.AnyType used for argument matching HOT 2
- NS1004 false positive when using argument matcher in a separate method
- Migrate CI/CD to GitHub actions
- NS5000 warning when using custom substitute extensions for checking stuff HOT 1
- NS3000: False positive when getting indexer value
- NS2001: False positive for class with protected internal constructor
- Suppress CS4014 when `.Received()` is used HOT 1
- Change PackageLicenseFile to PackageLicenseExpression
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nsubstitute.analyzers.