我收到此代码的文件未找到异常: (System.IO.FileNotFoundException:Die Datei oder Assembly“System.Xml,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e”odereineAbhängigkeitdavonwurde nicht gefunden.Das System kann die angegebene Datei nicht finden。)
public interface ISocket
{
int Receive(byte[] buffer);
}
[Test]
public void ShouldMock()
{
var Mock = new Mock<ISocket>();
ToBeTested Example = new ToBeTested ((ISocket)Mock.Object);
}
我找不到我的错误,在任何情况下我都没有引用过system.xml。什么可能出错?
编辑:
我从来没有解决过这个问题,我仍然坚持使用手动模拟。我再次尝试设置一个使用moq但又失败的项目。以下是一些具有相同运行时错误消息的其他代码:
[Test]
public void shouldLoadContextBasedOn_Type_AfterGettingContextDictionary()
{
Type loadableType = typeof(Context_Empty);
var mocklib= new Mock<IDictionary<Type, Type>>();
mocklib.SetupGet(lib => lib[loadableType]).Returns(loadableType);
ContextLoader tested = new ContextLoader();
tested.setContextKnowledge(mocklib.Object);
tested.loadContext(loadableType);
IContextBase expected = new mockContext();
IContextBase actual = tested.getCurrentContext();
mocklib.VerifyGet( lib => lib[typeof(Context_Empty)]);
Assert.AreEqual(expected.ToString(), actual.ToString());
}
堆栈托架显示moq在查杀之前正在寻找它的来源 - 是吗?它实际上只有在d:\ Code \ moq \ src \ Source下安装源时才有效吗?这似乎并不严谨。 (编辑:amd它不是 - nunit只是通知我,我找不到文件,所以与错误无关)
我有合适的包裹吗?我选择了silverligth4,我正在使用我在那里找到的两个dll - 其他的都没有用,因为有些东西丢失了。
编辑:
为了说明问题更加清晰。 hiere是另一个失败的代码:
[Test]
public void mockDemo()
{
var crappy = new Mock<IDisposable>();
IDisposable instance = crappy.Object; //Runtime Error
}
这里是堆栈跟踪 - 手动重写,可能会发生打字错误
ContextLoader_Spec mockDemo()
Mock1 get_Object()
Mock1 OnGetObject()
Mock1 InitialiseInstance()
PexProtector Invoke()
Mock1 <InitializeInstance>b_32()
ProxyGenerator CreateInterfaceProxyWithoutTarget()
DefaultProxyBuilder CreateInterfaceProxyTypeWithoutTarget()
InterfaceProxyWithTargetGenerator GenerateCode()
InterfaceProxyWithoutTargetGenerator GenerateType()
InterfaceProxyWithTargetGenerator Init()
InterfaceProxyWithTargetGenerator CreateFields()
我不知道为什么会发生这种异常。
编辑:这似乎是known issue withSilverlight4 编辑:与其他版本NET35 / NET40 / NET40Castle / Silverlight4重试 - 都显示相同的错误。
答案 0 :(得分:0)
切换到Rhino就像魅力一样。 Rhino can be downloadad单独或位于nunit testframework的lib文件夹中。
您所要做的就是将项目属性从.Net客户端配置文件切换到纯.Net配置文件,您就可以了。
这是一个Testsnippet,可以帮助您控制是否已经完成。
using System;
using NUnit.Framework;
using Rhino.Mocks;
namespace Test.selftest
{
[TestFixture]
class Framework_Test
{
[Test]
public void ShouldCompileAndExecuteASimpleNUnitTest()
{
Assert.IsTrue(true);
}
[Test]
public void ShouldVerifyRhinoMock()
{
ICloneable mock = MockRepository.GenerateMock<ICloneable>();
mock.Expect(x => x.Clone()).Return(new Object()).Repeat.Times(1);
mock.Clone();
mock.VerifyAllExpectations();
}
}
}