I'm trying to Mock one of my SignalR hubs using Moq in an NUnit test project. When i try to Mock it however, i run into the following excpetion:
System.BadImageFormatException : Could not load file or assembly 'Microsoft.AspNetCore.SignalR.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (0x80131058)
System.BadImageFormatException : Cannot load a reference assembly for execution.
at SocketServerTests.TestHub.Setup()
My test project references my "main" project, they are both in the same solution, the .csproj of the test project looks like this:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.1" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="nunit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SocketServer\SocketServer.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.AspNetCore.SignalR.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60">
<HintPath>C:\Program Files\dotnet\packs\Microsoft.AspNetCore.App.Ref\3.0.0\ref\netcoreapp3.0\Microsoft.AspNetCore.SignalR.Core.dll</HintPath>
</Reference>
</ItemGroup>
Currently (for test purpose) my Unit test looks like this:
public class TestHub
{
private Mock<MasterHub> _hub;
[SetUp]
public void Setup()
{
var loggerFactory = LoggerFactory.Create(builder => { });
var logger = loggerFactory.CreateLogger<MasterHub>();
var roomProvider = new RoomProvider();
var userProvider = new UserProvider();
var dataProvider = new DataProvider(roomProvider, userProvider);
_hub = new Mock<MasterHub>(dataProvider, logger);
}
[Test]
public void MockHub()
{
var boolean = true;
Assert.True(boolean);
}
}
When i try to debug the MockHub
method, the error stated above is raised.
What have i tried so far:
I'm on a Windows machine. NET Core version is 3.0.100. Editor used is Rider 2019.3.
What's weird is that is works on MacOS with Rider 2019.3, I tried it today and didn't have any problems.
Any help is appreciated!
User contributions licensed under CC BY-SA 3.0