我要对该课程进行单元测试
public class Email
{
public async virtual Task<bool> Send( )
{
//code
await Save();
}
internal virtual async Task<bool> Save( )
{
}
}
和此单元测试代码
var email = Substitute.ForPartsOf<Email>( );
email.When(x => x.Save( )).DoNotCallBase(); --> why x.Save will call the real implementation code
email.Save( ).ReturnsForAnyArgs(true);
这是对内部方法进行单元测试的正确方法吗?当我尝试将修饰符从内部更改为公开时,单元测试很好。
请告知。
谢谢
答案 0 :(得分:0)
我认为您需要使internal
可见DynamicProxyGenAssembly2
成员。该程序集由NSubstitute(和许多其他.NET模拟库)使用的Castle DynamicProxy库创建,以创建替代/模拟类型。
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
如果您安装NSubstitute.Analyzers package,则应prompt you处理这种情况。