【发布时间】:2012-03-10 14:52:35
【问题描述】:
在执行测试时,我的以下代码运行良好。
然后我尝试运行这些测试 + 代码覆盖率计算 (SharpDevelop 4) 它抛出异常。
有人能描述一下为什么会这样吗?
SetUp : System.Security.VerificationException : 操作可以 破坏运行时的稳定性。
[TestFixture]
public class NinjectExamplesTest
{
private interface IExampleInterface
{
}
private class ExampleInterfaceImplementation : IExampleInterface
{
}
private class ExampleClass
{
[Inject]
public IExampleInterface ExampleProperty { get; set; }
}
IKernel kernel;
[SetUp]
public void Init()
{
kernel = new StandardKernel();
kernel.Bind<IExampleInterface>().To<ExampleInterfaceImplementation>();
}
[Test]
public void TestStandardResolving()
{
// setup
// business
var result = kernel.Get<IExampleInterface>();
// verify
result.Should().NotBeNull();
result.Should().BeOfType<ExampleInterfaceImplementation>();
}
[Test]
public void TestPropertyResolving()
{
// setup
var exampleClass = new ExampleClass();
// business
kernel.Inject(exampleClass);
// verify
exampleClass.ExampleProperty.Should().NotBeNull();
exampleClass.ExampleProperty.Should().BeOfType<ExampleInterfaceImplementation>();
}
}
【问题讨论】:
-
你真的要测试 Ninject 吗?!
-
我只是想开始使用它而不是 Unity :) 不幸的是开始收到这个异常。
-
您确实应该对自己的代码进行单元测试,而不是第三方工具。那么为什么不测试您使用的技术(asp.net、winforms、webforms、实体框架等)或整个 .NET 框架呢?如果您查看Ninject on github,您会发现该来源已经包含测试。
-
@archil 使用集成测试发现第三方接口是很常见的。
标签: .net nunit ninject code-coverage sharpdevelop