このエラーは混乱しています。MSTest ExpectedExceptionテストに失敗しました
[TestMethod()]
[ExpectedException(typeof(DbUpdateException))]
public void AddRecipe_InvalidCookingMethod_ExpectExceptionThrown()
{
var target = GetRepository();
var recipe = new Recipe()
{
Method = "Sous-vide"
}
target.AddRecipe(recipe);
}
とAddRecipe
ルックス:私はそうのような試験方法を(これをバックアップDBがあるのですから、私たちはユニットテストではなく、それそれを呼びたいと思います)、いくつかの統合テストを実行し、持っているMSTestをを使用していますこのように:
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
テーブルへの外部キーを持っており、この場合には、私は挿入しようとしているレシピは、そのテーブルにない調理法を持っているので、私はを期待しますDbUpdateExceptionがスローされます。
テストが失敗し、それはインナーがあることを言及するために行く「.... AddRecipe_InvalidCookingMethod_ExpectExceptionThrownが例外System.Data.Entity.Infrastructure.DbUpdateExceptionを投げたが、例外System.Data.Entity.Infrastructure.DbUpdateExceptionが期待された」と述べ子行を追加または更新できません:タイプMySql.Data.MySqlClient.MySqlExceptionの例外外部キー制約が失敗した...」
私は、MySQLコネクタ6.4.4、エンティティフレームワーク4.3、VSを使用していますもしあれば、それは有益な情報です。
アイデア?
SOLUTION:この1を手伝っためラディスラフに
感謝。私はソースツリーを移動し、を更新しました。のすべてではありません。私のテストプロジェクトは間違ったバージョンのEntity Frameworkを参照していました。
テストプロジェクトとテスト済みプロジェクトの両方が同じEFライブラリを使用していることを検証できますか? –
それは、コードを移動し、間違ったものを参照していたということでした。ありがとう!それを答えにしたら、それを解決策としてマークします。 – itsmatt