构造函数的测试用例,因为我有一个过滤器逻辑



我有构造函数,其中有过滤器逻辑并想测试它,尽管在实践中没有为构造函数编写测试用例,但我希望有代码覆盖率,尝试了很多链接,但没有一个解释如何处理构造函数。

public Myclass {  
public Myclass(AnotherClass obj)    
{    
_key = obj.key;    
_ID = obj.ID;    
_CandidateMode = obj.CandidateMode;    
if(_CandidateMode == obj.CandidateMode.numeric     
{    
//Dosomething    
}    
else    
{    
//Do something with special character.    
}    
}    
} 

当然,将逻辑放在构造函数中是要避免的事情。很好,你知道:-)在这种特殊情况下,也许if可以进入每个公共MyClass方法,或者您可以使用多态性(基于AnotherClass对象创建MyClassMySpecialCharacterClass)?

无论如何,为了得到一个直接的答案:如果你真的必须测试构造函数逻辑,就像测试任何其他方法一样(顺便说一下,在某些语言中,它只是一个叫做new的静态方法)。

[TestMethod]
public void is_constructed_with_numeric_candidate() {
// Given
AnotherClass obj = new AnotherClass { CandidateMode = CandidateMode.numeric };
// When
MyClass myClass = new MyClass(obj);
// Then
// assert myClass object state is correct for numeric candidate
...
}
[TestMethod]
public void is_constructed_with_special_candidate() {
// Given
AnotherClass obj = new AnotherClass { CandidateMode = CandidateMode.special };
// When
MyClass myClass = new MyClass(obj);
// Then
// assert myClass object state is correct for special candidate
...
}

相关内容

  • 没有找到相关文章

最新更新