Tag: unit testing

无法比较UnitTests中的列表

我需要在unit testing中比较以下列表: var x = new List() { new List() }; var y = new List() { new List() }; CollectionAssert.AreEqual(x, y, “Expected response not the same as actual response.”); 但我总是得到以下例外,我该如何克服这个? [Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException] = {“CollectionAssert.AreEqual failed。预期响应与实际响应不同。(索引0处的元素不匹配。)”}

IQueryable单位或整合测试

我有一个web api,我正在暴露一个端点,如下所示: API /假日?名称= {}名 这是web api的控制器get方法: public IQueryable GetHolidayByName(string name) { return db.Holiday.Where(n => string.Equals(n.Name, name)); } 如何为此检查单元/集成测试以检查名称是否相等? 我可以检查结果是不是null然而有点困惑我怎么能检查名称是否相等: [TestMethod] public void GetHoliday_GetHolidayByName() { // Arrange HolidaysController controller = new HolidaysController(); // Act IQueryable actionResult = controller.GetHolidayByName(“Spain”); //Assert Assert.IsNotNull(actionResult); //any attempt to check names are equal results in a fail //For instance this fails […]

MSpec:如何使静态变量线程安全?

我正在使用MSpec作为我的最新项目,总的来说我对它非常满意。 但是,当我的测试以并行方式运行时,我确实遇到并发问题,我想知道是否有人遇到过这个问题,或者更好的是,有一个解决方案? MSpec严重依赖静态方法和变量来工作。 现在,当我在我的基类中定义静态变量时,它会被多个测试类使用,并且我在paralel中运行我的测试,它们共享相同的静态变量,从而干扰彼此。 我正在使用NCrunch和Resharper作为我的测试人员,我遇到了两个问题。 有人熟悉这个问题吗?

unit testing时使用reflection或属性?

这是我有点担心的课程。 我的目标是对地址列表进行unit testing: public class LabelPrinter { private readonly IEnumerable _addresses; public LabelPrinter(IEnumerable addresses) { _addresses = addresses; } public Document Create() { // … Generate PDF, etc … } } 什么是最好的: 使用reflection检查私有财产,或 既然最初的IEnumerable可以从外部修改,那么做一个公共的getter并测试它呢?

Moq – 使用在执行测试期间更改的参数validation调用

给出以下代码 public class Entity { public string Name { get; set; } public string Status { get; set; } } public interface IRepository { void InsertEntity(Entity entity); void UpdateEntity(Entity entity); } public class Processor { private IRepository _repository; public Processor(IRepository repository) { _repository = repository; } public void Execute(string name) { var entity = new […]

unit testing委托方法

在unit testing中是否有任何一点方法,它唯一能做的就是委托另一个对象的工作? 例: class abc { … public void MoveLeft() { fallingPiece.MoveLeft(); } … } 出于学习目的,我正在为我现有的一些课程进行unit testing。 例如,为此MoveLeft()方法执行unit testing似乎有点奇怪。 但我不确定如何完成Test-First。 谢谢

VS 2010和MBUnit如何只运行一次测试

我安装了Gallio / MbUnit,并且正在使用VS 2010 RC,我希望能够在TestFixture内运行单个unit testing或仅运行所有unit testing,而不是每次调试时都运行整个项目中的所有测试。 你如何在VS 2010中做到这一点?

带有参数化unit testing的.NET测试框架,每个组合显示红色/绿色?

当您具有Xunit testing* Y配置时, 参数化unit testing非常有用。 我有3个unit testing,每个必须在5种特定情况下运行。 我使用xUnit.net的Theory / PropertyData function ,效果很好。 问题:在Test Runner UI中,每个unit testing有一个绿色/红色符号,表示3 。 这使得评估进度变得困难:符号为红色,直到所有配置完美运行。 我想要15个符号,每个unit testing*配置一个,以了解哪个特定组合出错了。 xunit.net 尚未实现该function以显示15个符号。 我愿意切换到另一个测试框架只是为了获得这个function。 问题:任何.NET测试框架都有此function吗? 任何类型的报告都很好(GUI,HTML等)

Linq to SQL的unit testing实践

我试图围绕unit testing,我遇到了一个我不确定的行为: “可以备份库存” 基本上,“库存”表被复制到“InventoryHistory”表,并给出备份发生的时间戳(“HistoryDate”)。 这是备份库存的代码: DateTime historyDate = DateTime.Now; MyDataContext db = new MyDataContext(); db.GetTable().InsertAllOnSubmit( db.GetTable() .Select(i => new InventoryHistory { ID = i.ID, ItemName = i.ItemName, /* etc, etc, etc */ HistoryDate = historyDate }) ); 我的问题是: 应该/可以将此行为分解为更小的可unit testing部件吗? 由于我正在测试专用测试数据库,我应该使用模拟工具并遵循任何“存储库”的抽象工厂模式吗?

如何模拟HttpContext.User

我正在开发一个Asp.net MVC 5项目,我正在尝试设置一个模拟以在控制器中返回自定义主体。 我有搜索并尝试了不同的方法,但没有一个有效。 我有一个BaseController,我的所有控制器都inheritance自。 BaseController有一个User属性,它在getter中返回HttpContext.User。 HttpContext.user在项目中调用时返回一个值,但在从unit testing项目调用时返回null。 BaseController public class BaseController : Controller { protected virtual new CustomPrincipal User { get { return HttpContext.User as CustomPrincipal; } ***<== Line with issue*** } } 自定义校长 public class CustomPrincipal : IPrincipal, ICustomPrincipal { public IIdentity Identity { get; private set; } public string UserId { get; […]