I'm getting the exception
The type initializer for 'Moq.Mock`1' threw an exception.
using Moq 4.0 I've checked around on a couple of forums and they allude to using the Moq-NoCastle version. I've tried both this and version in the Moq folder. Both with the same result.
I've got a solution with 2 projects, one for my interface, one for my tests. My main project has 2 files:
IMyInterface.cs:
using System;
namespace Prototype
{
public interface IMyInterface
{
int Value { get; set; }
void ProcessValue();
int GetValue();
}
}
My program.cs file has just the default code that's generated with the project.
My test project has a single file for my dummy test - TestProgram.cs
using System;
using NUnit.Framework;
using Moq;
namespace Prototype.UnitTests
{
[TestFixture]
public class TestProgram
{
Mock<IMyInterface> mock;
[TestFixtureSetUp]
void TestSetup()
{
mock = new Mock<IMyInterface>();
mock.Setup(x => x.GetValue()).Returns(2);
}
[Test]
public void RunTest()
{
IMyInterface obj = mock.Object; /* This line fails */
int val = obj.GetValue();
Assert.True(val == 2);
}
}
}
According to the documentation all is good and proper, and it compiles nicely. The problem comes when I try to run the test. It gets to the line marked above and crashes with the exception:
The type initializer for 'Moq.Mock`1' threw an exception.
I can't see what's going wrong here, can anyone shed some light on it?
This occurred to me when I updated the Castle.Core NuGet Package to the version 4.0.0. Something changed that is does not work properly with latest Moq (v4.5.30) at this moment.
I solved this by going back to the Castle.Core version 3.3.3.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With