小编Mat*_*cek的帖子

为类型创建AutoFixture样本构建器

在这种情况下,我正在为特定类型创建一个AutoFixture样本构建器System.Data.DataSet.构建器将返回a FakeDataSet,这是DataSet为测试而定制的.

以下不起作用,dataSet总是返回null,即使DataSet正在请求a(我可以通过钻取request属性来判断).

public class DataSetBuilder : ISpecimenBuilder
{
    public object Create(object request, ISpecimenContext context)
    {
        var dataSet = request as DataSet;
        if (dataSet == null)
        {
            return new NoSpecimen(request);
        }

        return new FakeDataSet();
    }
}
Run Code Online (Sandbox Code Playgroud)

这种变化确实有效,但似乎过于复杂.感觉有更好的方法来完成同样的事情,我只是缺少一些东西.

public class DataSetBuilder : ISpecimenBuilder
{
    public object Create(object request, ISpecimenContext context)
    {
        var seededRequest = request as SeededRequest;
        if (seededRequest == null)
        {
            return new NoSpecimen(request);
        }

        var requestType = seededRequest.Request …
Run Code Online (Sandbox Code Playgroud)

c# autofixture

12
推荐指数
1
解决办法
2853
查看次数

使用AutoFixture实例化[immutable]对象时指定[readonly]属性值[via ctor args]

我的测试要求我将Response不可变Rsvp对象(见下文)的属性设置为特定值.

public class Rsvp
{
    public string Response { get; private set; }

    public Rsvp(string response)
    {
        Response = response;
    }
}
Run Code Online (Sandbox Code Playgroud)

我最初尝试使用Build<Rsvp>().With(x => x.Rsvp, "Attending"),但意识到这只支持可写属性.

我替换了Build<Rsvp>().FromFactory(new Rsvp("Attending")).这可行,但对于更复杂的对象来说很麻烦,因为它们与某些属性无关.

例如,如果Rsvp对象具有CreatedDate属性,则实例化对象的这种方法将迫使我编写Build<Rsvp>().FromFactory(new Rsvp("Attending", fixture.Create<DateTime>())).

有没有办法只为不可变对象指定含义属性的值?

c# unit-testing immutability autofixture

8
推荐指数
1
解决办法
2141
查看次数

FluentAssertions ShouldBeEquivalentTo()与Should().BeEquivalentTo()

我有一个测试验证方法的集合输出.测试的这种变化通过:

    [TestMethod, TestCategory("BVT")]
    public void TheStatusesAreReturned()
    {
        var expectedUnprocessedStatuses = new List<FileUploadStatus>
            {
                FileUploadStatus.InProcess,
                FileUploadStatus.Pending,
            };

        Sut.GetUnprocessedStatuses()
            .Should()
            .BeEquivalentTo(expectedUnprocessedStatuses);
    }
Run Code Online (Sandbox Code Playgroud)

测试的这种变化失败,错误"预期项目[0]为InProcess,但发现待定":

    [TestMethod, TestCategory("BVT")]
    public void TheStatusesAreReturned2()
    {
        var expectedUnprocessedStatuses = new List<FileUploadStatus>
            {
                FileUploadStatus.InProcess,
                FileUploadStatus.Pending,
            };

        Sut.GetUnprocessedStatuses()
            .ShouldBeEquivalentTo(expectedUnprocessedStatuses);
    }
Run Code Online (Sandbox Code Playgroud)

显然,ShouldBeEquivalentTo关心收集项目的顺序,而BeEquivalentTo不是.为什么两种方法之间的等效概念不同?

unit-testing fluent-assertions

7
推荐指数
1
解决办法
5055
查看次数

Visual Studio参考突出显示不会禁用

我已使用以下说明禁用Visual Studio 2013中的C#代码参考高亮显示:http://blogs.msdn.com/b/zainnab/archive/2013/07/18/visual-studio-2013-reference-highlighting.aspx.然而,我仍然看到引用突出显示.

使用的字体颜色组合与突出显示参考的字体颜色设置不匹配 - 设置为带有灰白色文本的绿色背景,突出显示的参考显示为带有灰白色文本的白色背景.此外,参考导航不起作用(按预期) - 按CTRL + SHIFT + DOWN/UP不执行任何操作,表示突出显示的参考功能已关闭.

如何阻止引用被突出显示?

c# fonts highlighting visual-studio visual-studio-2013

7
推荐指数
1
解决办法
2942
查看次数

使Handsontable自动完成弹出窗口比列宽

"客户ID"列设置为使用自动完成.自动完成值将各种客户信息连接在一起,以帮助用户选择正确的信息.选择后,客户ID将被放入网格中.

我无法弄清楚如何使自动完成弹出窗口更宽,以便它适合连接的信息.

自动完成值截止

这就是它需要的样子,这是我通过在渲染后修改元素来实现的.理想情况下,它的宽度足以适应内容.

自动填充值不会截止

handsontable

7
推荐指数
1
解决办法
644
查看次数