0

当我在 NUnit = Red Bar 中运行此测试时。

    [Test]
    public void ChangingValueViaPropertyDescriptorRaisesPropertyChangedNotification()
    {
        PropertyChangedEventArgs pCEventArgs = null;
        subjectVM.PropertyChanged += (sender, e) => { pCEventArgs = e; };

        PropertyDescriptor descriptor = subjectVM.GetProperties().Find(schoolMeta.Name, false);

        descriptor.SetValue(null, "School's out for summer.");

        Assert.IsNotNull(pCEventArgs);
        Assert.AreEqual("School", pCEventArgs.PropertyName);
    }

但是,当我在 Visual Studio 中使用 Testdriven.Net 运行此测试时,它通过了(从控制台应用程序运行时也可以)。

当 NUnit 失败时,这是因为 PropertyChanged 为空,subjectVM 是从基类继承 PropertyChanged 的​​视图模型类。

我应该受到责备,还是我在看 NUnit 错误?

4

1 回答 1

2

不同的测试工具以不同的顺序执行测试:如果这个测试对夹具的执行顺序有隐含的依赖,它可能会导致这个问题(我以前被这个烧过)。

我最好的猜测是另一个测试正在对subjectVM(或其成员之一)做一些可疑的事情。

于 2010-04-28T13:36:47.603 回答