我有一个(许多)具有属性的类。有些有逻辑,有些没有。假设我想测试这些属性,我该怎么做呢?
最近,我对创建单元测试的 BDD 风格很感兴趣。
所以我会设置上下文 - 基本上创建 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()
{
}