这可能是我需要摆脱我的系统的哲学咆哮,另一方面我可能做错了什么,如果是的话请告诉我!TestMethod生成错误CS0201
我有一个单元测试看起来是这样的:
[TestMethod]
[ExpectedException(typeof(NotImplementedException))]
public void Test_XXXAccess()
{
ControlPoint.MyObject.XXXAccess;
}
,检查,当测试是在一个特定的上下文中运行的性能XXXAccess未实现。此测试会生成编译错误CS0201:“只有赋值,调用,增量,减量和新对象表达式可用作语句”虽然我同意这是生产代码中的错误,但我认为错误适用于单元测试。当然,我可以重新编写代码:
[TestMethod]
[ExpectedException(typeof(NotImplementedException))]
public void Test_XXXAccess()
{
MyType x = ControlPoint.MyObject.XXXAccess;
}
但是,这(对我来说)似乎更不正确的,你现在已经分配成一个变量做无非静音错误更多。
有没有更好的方法来编写测试?
除非您在''get''方法中使用'XXXAccess'属性的副作用,除非您小心,否则这本身可能是不好的做法,我会说第二个版本是唯一正确的版本。要求编译器记住你想要的东西很难。 :) – HonkyTonk 2012-08-15 14:30:03
嗯...嗯,我使用了很多'Mock'对象来实现我的公共接口 - 这些是抛出异常的东西。我的测试检查这些调用得到了那么多,因为如果没有权限访问这些方法,我有代理会抛出不同的异常....所以我猜这可能是不好的做法 - 但它似乎是最好的方法的东西。 – diversemix 2012-08-15 14:43:26