如何测试一个writeonly属性

jun*_*ser 5 rhino-mocks

在我的应用程序中,使用MVP模式,presenter在视图上设置一些属性.例如,Iview有字符​​串Customer {set;}.现在,我想测试这个属性设置了一些值"x".我怎么做用犀牛嘲笑测试?

Mar*_*ann 4

不要定义只写属性。正如.NET 设计指南所述:

不要提供仅设置的属性。

如果无法提供属性 getter,请改用方法来实现该功能。方法名称应以 Set 开头,后跟属性名称。例如,AppDomain 有一个名为 SetCachePath 的方法,而不是一个名为 CachePath 的仅设置属性。

在大多数情况下,定义读/写属性要容易得多,并且可以轻松地对所属类型进行单元测试。为此,您不需要 Rhino Mocks,因为您可以直接从属性中读取值。

但是,如果您想要设计指南中描述的变异方法,则必须使其virtual能够使用 Rhino Mocks 来验证它是否被正确调用。虽然这当然是可能的,但设置起来比较复杂,所以只有在有令人信服的理由时我才会采取这种做法。