在这种情况下,我正在为特定类型创建一个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) 我的测试要求我将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>())).
有没有办法只为不可变对象指定含义属性的值?
我有一个测试验证方法的集合输出.测试的这种变化通过:
[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不是.为什么两种方法之间的等效概念不同?
我已使用以下说明禁用Visual Studio 2013中的C#代码参考高亮显示:http://blogs.msdn.com/b/zainnab/archive/2013/07/18/visual-studio-2013-reference-highlighting.aspx.然而,我仍然看到引用突出显示.
使用的字体颜色组合与突出显示参考的字体颜色设置不匹配 - 设置为带有灰白色文本的绿色背景,突出显示的参考显示为带有灰白色文本的白色背景.此外,参考导航不起作用(按预期) - 按CTRL + SHIFT + DOWN/UP不执行任何操作,表示突出显示的参考功能已关闭.
如何阻止引用被突出显示?
"客户ID"列设置为使用自动完成.自动完成值将各种客户信息连接在一起,以帮助用户选择正确的信息.选择后,客户ID将被放入网格中.
我无法弄清楚如何使自动完成弹出窗口更宽,以便它适合连接的信息.

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