【发布时间】:2020-06-08 20:34:26
【问题描述】:
我有一种方法,如下所示 -
public string SomeMethod() {
var resultfromdb = from u in dbContext.TableOne.FromSql("Some select query here")
join rm in dbContext.TableTwo on u.Id equals rm.FId
select new SomeObject() {
/* returning some prperty */
};
//some business code here
return someresult;
}
现在,当我使用 Xunit 为这个方法编写单元测试时,我在 FromSql 方法上遇到以下错误
错误:
无法解析表达式 'value(Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[TableOne]).FromSql(value(Microsoft.EntityFrameworkCore.RawSqlString), __p_0)': 这个重载目前不支持“Microsoft.EntityFrameworkCore.RelationalQueryableExtensions.FromSql”方法。
测试方法
[Fact]
public void Test_Method()
{
using (var context = new dbContext())
{
//Arrange
PrefillData(context);//In this method i wll add some dummy data to dbcontext
//some mocking for other code
//Act
var result = SomeMethod();
//Assert
Assert.Equal(expectedString, result);
}
【问题讨论】:
-
这个测试的代码怎么样?
-
看起来您正在使用 InMemory 数据库进行测试。如文档中所述,InMemory 数据库不支持许多数据库结构,包括 SQL。
标签: c# .net entity-framework-core asp.net-core-webapi