2012-03-06 37 views
2

このエラーは混乱しています。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を参照していました。

+0

テストプロジェクトとテスト済みプロジェクトの両方が同じEFライブラリを使用していることを検証できますか? –

+0

それは、コードを移動し、間違ったものを参照していたということでした。ありがとう!それを答えにしたら、それを解決策としてマークします。 – itsmatt

答えて

1

私がコメントで指摘したように、これはソリューション内のプロジェクトが異なるバージョンのEntityFramework.dllライブラリを使用する問題のようです。

関連する問題