我无法使我的单元测试正常工作.它适用于我实际遇到Azure表存储的集成测试.我猜的问题是对属性QueryableEntities的模拟,它从mock中重新构造了一个Queryable,但它从ServiceContext类返回一个DataServiceQuery.是否可以创建一个返回Queryable的DataServiceQuery类型的存根?
这是我的代码:
测试
[TestMethod]
public void GetAExistingWordInStorageShouldReturnCorrectWord()
{
Word expected = new Word(Dictionaries.Swedish.ToString(), "Word", "Word");
List<Word> Words = new List<Word>();
Words.Add(new Word(Dictionaries.Swedish.ToString(), "Word", "Word"));
IQueryable<Word> WordQueryable = Words.AsQueryable<Word>();
var mock = new Mock<IServiceContext<Word>>();
mock.Setup(x => x.QueryableEntities).Returns(WordQueryable);
DictionaryRepository dr = new DictionaryRepository(Models.Dictionaries.Swedish, "testdictionaries");
dr.Context = mock.Object;
Word result = dr.GetWord(expected.Text, false);
Assert.AreEqual(expected, result);
}
Run Code Online (Sandbox Code Playgroud)
IServiceContect接口
public interface IServiceContext<TEntity>
{
IQueryable<TEntity> QueryableEntities {get;}
}
Run Code Online (Sandbox Code Playgroud)
ServiceContext类
public class ServiceContext<TEntity> : TableServiceContext, IServiceContext<TEntity> where TEntity : TableServiceEntity
{ …Run Code Online (Sandbox Code Playgroud)