私は単体テストを作成しています。本当のデータを使わずに自分の関数をテストできるようにmoqを実装しました。私は私のテストクラスからこれをテストすることができるようにしたいが、どのようにうまくいかないことができ Post getPostByID(int id);
:これまでのところは良い..しかし..「記事」IPostRepository
のための私のリポジトリインターフェイスでユニットテスト機能はリポジトリインタフェース内にあります - ASP.net MVC3&Moq
私は機能を持っています。
これまでのところ、私は私のテストのために、このパターンを使用しています:私の機能で
[SetUp]
public void Setup()
{
mock = new Mock<IPostRepository>();
}
[Test]
public void someTest()
{
populate(10); //This populates the mock with 10 fake entries
//do test here
}
は「someTestは」私は機能GetPostById
をテストする/呼び出すことができるようにしたいです。私はmock.object.getpostbyid
と機能を見つけることができますが、 "オブジェクト"はnullです。
任意の助けいただければ幸い:)
iPostRepository:
public interface IPostRepository
{
IQueryable<Post> Posts {get;}
void SavePost(Post post);
Post getPostByID(int id);
}
'populate(10)'はどのようにデータを作成しますか?モックの 'object'プロパティでヌル参照例外を取得すると、モックがインスタンス化されていないことを意味しますが、あなたは' [SetUp] 'でそれを行っているように見えます。 '[SetUp]'が期待どおりに動いていることを確認する価値があります。 – ataddeini
ああ、私は今理解していると思う - 私は "オブジェクト"がnullであると私はあなたがモックの 'オブジェクト 'プロパティを意味すると思ったと読んだ。私はMarnixがあなたの答えを持っていると思う。 – ataddeini
@ataddeiniええ、人口は反復するだけで、すべてのテストケースで同じ10行を書いてくれません! – JustAnotherDeveloper