gpt4 book ai didi

mysql - MSTest 预期异常测试失败

转载 作者:行者123 更新时间:2023-11-29 03:10:16 25 4
gpt4 key购买 nike

所以,我对这次失败感到困惑。我正在使用 MSTest 运行一些集成测试(因为有一个数据库支持这个,我想我们会称之为而不是单元测试)并且有一个像这样的测试方法:

[TestMethod()]
[ExpectedException(typeof(DbUpdateException))]
public void AddRecipe_InvalidCookingMethod_ExpectExceptionThrown()
{
var target = GetRepository();
var recipe = new Recipe()
{
Method = "Sous-vide"
}
target.AddRecipe(recipe);
}

AddRecipe 看起来像这样:

public void AddRecipe(Recipe recipe)
{
// validation stuff
// automapper stuff
try
{
using (var context = GetContext())
{
context.recipes.Add(recipe);
context.SaveChanges();
}
}
catch (DbUpdateException ex)
{
Console.WriteLine(ex.ToString());
throw;
}
}

底层表有一个指向 cooking_method 表的外键,在这种情况下,我要插入的食谱有一个不在该表中的 cooking 方法,所以我希望 cooking_method strong>DbUpdateException 被抛出。

测试失败并指出“AddRecipe_InvalidCookingMethod_ExpectExceptionThrown 抛出异常 System.Data.Entity.Infrastructure.DbUpdateException,但异常 System.Data.Entity.Infrastructure.DbUpdateException 是预期的......”它接着提到有一个内部异常MySql.Data.MySqlClient.MySqlException 类型:无法添加或更新子行:外键约束失败...”

我正在使用 MySql 连接器 6.4.4、 Entity Framework 4.3、VS 2010,如果有任何有用的信息。

想法?


解决方案:

感谢 Ladislav 在这方面的帮助。我移动了源代码树并更新了大部分 但不是所有引用。我的测试项目引用了错误版本的 Entity Framework 。

最佳答案

正如我在评论中指出的,这看起来像是解决方案中的项目使用不同版本的 EntityFramework.dll 库的问题。

关于mysql - MSTest 预期异常测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9588206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com