我有一个模拟对象,它被传递给另一个服务。
mock有一个行为主题,可以在服务内部或从我的单元测试中修改。测试失败,因为mock没有返回我期望的值。
void Main()
{
Moq.Mock<ITest> Mock = new Moq.Mock<ITest>();
Mock.Setup(m => m.GetTestValue()).Returns(Task.FromResult(TestSubject.Value));
TestSubject.Subscribe();
//Setting TestSubject.Value to true
TestSubject.OnNext(true);
//But Mock still Returns false
var testTask = Mock.Object.GetTestValue();
testTask.Wait();
testTask.Result.Dump();
}
public System.Reactive.Subjects.BehaviorSubject<bool> TestSubject = new System.Reactive.Subjects.BehaviorSubject<bool>(false);
public interface ITest{
Task<bool> GetTestValue();
}
编辑:忘记订阅主题,但订阅并不能解决问题。