我有一个(很多)类具有属性。有些有逻辑,有些则没有。假设我想测试这些属性,我该怎么做呢?
最近,我对用于创建单元测试的 BDD 风格很感兴趣。
see here http://iridescence.no/post/Extending-xUnit-with-a-Custom-ObservationAttribute-for-BDD-Style-Testing.aspx and here http://www.bjoernrochel.de/tag/xunitbddextensions/.
所以我会设置上下文 - 基本上创建 SUT 并加载所需的任何内容。
然后在每个观察(测试方法)中,我将验证特定属性是否包含它应该包含的内容。
这是我的问题。如果 SUT 有 20 个属性,那么我是否要创建 20 个观察/测试?我猜如果其中一个属性包含更有趣的逻辑,可能会更多。
[Observation]
public void should_load_FirstName()
{
Assert.Equals<string>("John", SUT.FirstName);
}
[Observation]
public void should_load_LastName()
{
Assert.Equals<string>("Doe", SUT.LastName);
}
[Observation]
public void should_load_FullName()
{
Assert.Equals<string>("John Doe", SUT.FullName);
}
但如果将简单的观察结果汇总到一次观察中会更好吗?
[Observation]
public void should_load_properties()
{
Assert.Equals<string>("John", SUT.FirstName);
Assert.Equals<string>("Doe", SUT.LastName);
Assert.Equals<string>("John Doe", SUT.FullName);
}
或者,如果我使用自定义属性(可以多次应用于一个方法)怎么办?这样我就可以做类似的事情:
[Observation(PropertyName="FirstName", PropertyValue="John")]
[Observation(PropertyName="LastName", PropertyValue="Doe")]
[Observation(PropertyName="FullName", PropertyValue="John Doe")]
public void should_load_properties()
{
}