Tag: unit testing

如何在NUnit 2.5中使用TestCase?

我有一个Currency类,我使用NHibernate将其保存到我的数据库中。 Currency类看起来像这样: public class Currency : Entity { public virtual string Code { get; set; } public virtual string Name { get; set; } public virtual string Symbol { get; set; } } 我使用[TestCase]编写了一个unit testing,如下所示: [TestCase(6,Result = new Currency ({ Code=”GBP”, Name=”British Pound”, Symbol=”£”}))] public Currency CanGetCurrencyById(int id) { ICurrencyRepo currencies = new RepoFactory().CreateCurrencyRepo(_session); Currency […]

如何在.NET Core中对Startup.cs进行unit testing

人们如何在.NET Core 2应用程序中对其Startup.cs类进行unit testing? 所有function似乎都是由静态扩展方法提供的,这些方法不可模拟? 例如,如果您使用此ConfigureServices方法: public void ConfigureServices(IServiceCollection services) { services.AddDbContext(options => options.UseSqlServer(Configuration.GetConnectionString(“DefaultConnection”))); services.AddMvc(); } 如何编写测试以确保调用AddDbContext(…)和AddMvc(),通过Extensions方法实现所有这些function的选择似乎使其不可测试?

如何模拟Excel VSTO插件中的行?

我试图在一个新的Range行中放置一个模拟的Range (包含值的单元格)。 但是当我尝试从Range访问特定元素时,会抛出exception。 我已经尝试了一切,有没有人知道我在这里做错了什么? 例外 消息:测试方法xxx.MockUtilsTest.MockRowsTest抛出exception:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:无法将带有[]的索引应用于类型为“Castle.Proxies.RangeProxy”的表达式 测试 [TestMethod] public void MockRowsTest() { var row1 = MockUtils.MockCells(“test_row_1”, “test_row_1”); var row2 = MockUtils.MockCells(“test_row_2”, “test_row_2”); var range = MockUtils.MockRows(row1, row2); Assert.IsNotNull(range); Assert.AreEqual(2, range.Count); Assert.IsNotNull(range.Rows); Assert.AreEqual(2, range.Rows.Count); Assert.AreSame(row1, range.Rows[1].Cells[1]); // exception is thrown here Assert.AreSame(row2, range.Rows[2].Cells[1]); Assert.AreEqual(“test_row_1”, range.Rows[1].Cells[1].Value2); Assert.AreEqual(“test_row_2”, range.Rows[2].Cells[1].Value2); } MockUtils public static Range MockCellValue2(Object value) { var […]

如何实现XUnit描述性断言消息?

上下文 在XUnit github中我发现了这个: 添加Assert.Equal(预期,实际,消息)重载#350 (所以开发人员要求不存在的重载请参见下文) 引用答案: 我们相信自我记录的代码; 包括你的断言。 (所以XUnit团队拒绝它) 好,我知道了。 我也相信自我记录代码。 我还是找不到这个用例: 样品 // Arrange // Create some external soap service client and its wrapper classes // Act // client.SomeMethod(); // Assert // Sorry, soap service’s interface, behaviour and design is *given* // So I have to check if there is no Error, and // […]

使用Moq调用方法时如何引发事件?

我有这样的界面: public interface IMyInterface { event EventHandler Triggered; void Trigger(); } 我的unit testing中有一个模拟对象,如下所示: private Mock _mockedObject = new Mock(); 我想做这样的事情: // pseudo-code _mockedObject.Setup(i => i.Trigger()).Raise(i => i.Triggered += null, this, true); 但是,在返回的ISetup接口上看起来不像Raise 。 我该怎么做呢?

如何将DateTime设置为ValuesAttribute进行unit testing?

我想做这样的事情 [Test] public void Test([Values(new DateTime(2010, 12, 01), new DateTime(2010, 12, 03))] DateTime from, [Values(new DateTime(2010, 12, 02), new DateTime(2010, 12, 04))] DateTime to) { IList result = MyMethod(from, to); Assert.AreEqual(1, result.Count); } 但是我得到关于参数的以下错误 属性参数必须是常量表达式,typeof表达式或数组创建表达式 有什么建议? 更新:关于NUnit 2.5中参数化测试的好文章 http://www.pgs-soft.com/new-features-in-nunit-2-5-part-1-parameterized-tests.html

如何对抽象类进行unit testing

在Visual Studio中使用了创建unit testing工具,显然它试图实例化我的抽象类。 我的问题是:我应该尝试unit testingVisual Studio试图让我这样做的方式,还是应该创建一个要实例化的模拟类,还是应该只测试使用这个抽象类的方法? 谢谢。

xUnit.net Test Stripper

是否有可用的测试剥离器(在xUnit测试模式中定义),它支持删除包含标记为[Fact]等的方法的类以及从二进制文件[作为构建过程的一部分]对xunit.dll的依赖性? 有关完整要求和上下文的更多详细信息, 请参见此xUnit CodePlexpost 。 如果失败了(删除了测试和对DLL的引用),任何人都有一个实用程序/经过validation的干净方法来删除xunit.dll依赖,而不会在.vcproj文件中进行太多的修改等。 开源首选。 NUnit的一个干净的书面文件可能会作为基础。 注意:我知道将代码嵌入到程序集中的负面影响 – 这个问题不是关于这个问题(除非你在阅读了codeplex线程后感到遗漏了一些关键点)。

使用Moq模拟具有内部构造函数的类型

我正在尝试从Microsoft Sync Framework模拟一个类。 它只有一个内部构造函数。 当我尝试以下内容时: var fullEnumerationContextMock = new Mock(); 我收到此错误: System.NotSupportedException:Parent没有默认构造函数。 必须显式定义默认构造函数。 这是堆栈跟踪: System.Reflection.Emit.TypeBuilder.DefineDefaultConstructorNoLock(MethodAttributes attributes)System.Reflection.Emit.TypeBuilder.DefineDefaultConstructor(MethodAttributes attributes)System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()System.Reflection.Emit.TypeBuilder.CreateType()Castle。 DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType()Castle.DynamicProxy.Generators.ClassProxyGenerator.GenerateCode(Type [] interfaces,ProxyGenerationOptions options)Castle.DynamicProxy.DefaultProxyBuilder.CreateClassProxy(Type classToProxy,Type [] additionalInterfacesToProxy,ProxyGenerationOptions options)Castle。 DynamicProxy.ProxyGenerator.CreateClassProxyType(Type classToProxy,Type [] additionalInterfacesToProxy,ProxyGenerationOptions options)Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(Type classToProxy,Type [] additionalInterfacesToProxy,ProxyGenerationOptions options,Object [] constructorArguments,IInterceptor [] interceptors)Castle.DynamicProxy。 ProxyGenerator.Create ClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,ProxyGenerationOptions选项,IInterceptor []拦截器)Castle.DynamicProxy.ProxyGenerator.CreateClassProxy(类型classToProxy,Type [] additionalInterfacesToProxy,IInterceptor []拦截器)Moq.Mock 1.b__0() Moq.PexProtector.Invoke(Action action) Moq.Mock 1.InitializeInstance() 我该如何解决这个问题呢?

SpecFlow – 从方法步骤查找所有方案并查找所有未实现的步骤

SpecFlow新手。 当specs项目变得更大时,组织文件并重构Given / When / Then字符串变得麻烦。 如何从方法步骤中查找要素文件中的方案。 有时我会在一些场景和function中共享一些步骤,但是从C#步骤方法查看如何在function文件中“查找所有引用”? 如何在所有function文件中获取所有未实现的场景步骤(字体颜色为紫色),以便我可以实现这些步骤。 目前,当我Run All测试时,没有关于未实现的步骤的警告。