Jus*_*ook 2 c# unit-testing exception visual-studio
关于这个的任何想法?我正在尝试编写一个单元测试,它将删除一个项目并通过尝试通过其ID来检索项目来确认该项目不再存在于存储库中,该ID应该抛出DataAccessException.但是,测试仍然失败.我添加了一个try catch块,果然我抓住了我期待的异常.我正在使用VS测试工具进行单元测试.
[ExpectedException(typeof(DataAccessException))]
private static void NHibernateRepositoryBaseDeleteHelper<T, TKey>(T myItem, TKey myItemId)
{
MyTestRepository<T, TKey> myRepository = new MyTestRepository<T, TKey>();
myRepository.Delete(myItem);
myRepository.CommitChanges();
try
{
myRepository.GetById(myItemId, false);
}
catch (DataAccessException dae)
{
Assert.IsTrue(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我将通过指出"ExpectedException"属性糟透了,添加到Jared所说的内容中.没有办法断言异常的消息是正确的("消息"参数不会做你认为它做的事情)并且你不能在一次测试中检查多个异常.
更好的解决方案是做这样的事情:http: //geekswithblogs.net/sdorman/archive/2009/01/17/unit-testing-and-expected-exceptions.aspx
那个班让你做这样的好事:
[TestMethod] public void TestAFewObviousExceptions() { // some setup here ExceptionAssert.Throws("Category 47 does not exist", () => wallet.Categories.GetChildCategoryIds(47)); ExceptionAssert.Throws("Id Flim is not valid", () => wallet.Categories.IdFromName("Flim")); }
归档时间: |
|
查看次数: |
2359 次 |
最近记录: |