- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码要求我调用一个属性 setter 来测试一个类的锁定功能是否正常工作(该类的一些函数是async
,要求挂锁 bool 值是在执行期间设置)。如果已为实例设置锁,则已编写 setter 以引发 RuntimeError
。
代码如下:
@filename.setter
def filename(self, value):
if not self.__padlock:
self.__filename = value
else:
self.__events.on_error("data_store is locked. you should be awaiting safe_unlock if you wish to "
"change the source.")
正如您在此处看到的,如果 self.__padlock
为 True
,则会引发 RuntimeError
。尝试使用 python unittest
断言 setter 时会出现问题。
unittest
似乎缺少断言属性 setter 是否引发异常所需的功能。
尝试使用 assertRaises
显然不起作用:
# Non-working concept
self.assertRaises(RuntimeError, my_object.filename, "testfile.txt")
如何断言类的属性 setter 将在 python unittest.TestCase
方法中引发给定的异常?
最佳答案
您需要通过赋值实际调用 setter。这很简单,只要你使用assertRaises
即可。作为上下文管理器。
with self.assertRaises(RuntimeError):
my_object.filename = "testfile.txt"
如果您做不到,您将不得不回退到明确的 try
语句(这变得棘手,因为您需要分别处理“无异常”和“RuntimeError
以外的异常”。
try:
my_object.filename = "testfile.txt"
except RuntimeError:
pass
except Exception:
raise AssertionError("something other than RuntimeError")
else:
raise AssertionError("no RuntimeError")
或(更多)显式调用 setter :
self.assertRaises(RuntimeError, setattr, myobject, 'filename', 'testfile.txt')
或者更糟的是,显式调用 setter :
self.assertRaises(RuntimeError, type(myobject).filename.fset, myobject, 'testfile.txt')
换句话说,为上下文管理器欢呼三声!
关于python - 断言由 @propertyname.setter 生成的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57379888/
这个问题已经有答案了: JavaScript property access: dot notation vs. brackets? (17 个回答) 已关闭 5 年前。 假设我有一个像这样的对象数组
所以我定义了一个带有属性的类 - 在本示例中我们将其称为 propertyName。我在实现中使用 @synthesize 设置了属性。 我有一个名为 objectToNSDictionary 的方法
我正在使用 java.util.Properties 对象,我通常使用 keySet() 来获取属性的所有键。 我想知道 keySet() 或 propertyNames() 哪个更好。 proper
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
在试图更好地理解 javascript 背后的原型(prototype)时,我偶然发现了以下内容,到目前为止我还无法理解。 我知道函数是一等对象,但我不明白为什么 Object 在 Function.
我已经看到在同一个项目中使用了这两种样式,我想知道它们之间是否存在任何语义差异,或者是否会推荐任何一种风格以及为什么。 最佳答案 只要您有一个带有类型参数的复杂属性路径,您就会遇到一个显着的差异。 从
在 objective-c 中通过“propertyname”和“self.propertyname”访问属性之间有什么区别?你能在答案中涵盖: 什么是最佳做法? 这两种方法如何影响内存管理(保留计数
我有这样的对象定义 var obj = { abcdefghijkl: 'abcdefghijkl', other_key: 1234 }; 我可以在 Javascript 中将获取属性名称的对象本身
在 javascript 中,我们可以使用键而不是索引号从数组中选择一个值,执行如下操作: objectName["propertyName"] 或 objectName.propertyName J
我不知道正则表达式, 但是我需要正则表达式来计算ClassName.PropertyName吗? 需要验证 appSettings 中的一些值是否符合 ClassName.PropertyName 约
在实现 INotifyPropertyChanged 时,我一直不确定 propertyName 的含义。所以通常你将 INotifyPropertyChanged 实现为: public class
我面临的问题是,当我有一个类的属性具有如下默认值时: public class Border { public Border() { InitializeAdornment()
我有一些使用 ASP.Net MVC 的 C# 代码,它使用 Json.Net 来序列化一些 DTO。为了减少负载,我使用 [JsonProperty(PropertyName = "shortNam
故事 我在我的应用中使用 Firebase 实时数据库。我有一个类似这样的模型。 class Item { int mItemName; // Simplified for brevi
This question already has answers here: JavaScript property access: dot notation vs. brackets? (13个回
这是我的 xaml,它告诉 collectionviewsource 排序属性名称。 上面的 xaml 工作正
源代码 我有一些代码要求我调用一个属性 setter 来测试一个类的锁定功能是否正常工作(该类的一些函数是async,要求挂锁 bool 值是在执行期间设置)。如果已为实例设置锁,则已编写 sette
源代码 我有一些代码要求我调用一个属性 setter 来测试一个类的锁定功能是否正常工作(该类的一些函数是async,要求挂锁 bool 值是在执行期间设置)。如果已为实例设置锁,则已编写 sette
我正在尝试将我的 Winforms UI 绑定(bind)到我的 ViewModel。我能够在 UI 更改时成功更新我的 ViewModel,反之亦然。但是,我似乎无法理解 PropertyChang
有 Spring Data Rest reference有人可以解释一下排序表达式 ($propertyname,)+[asc|desc]? ?它看起来像正则表达式,但我怀疑。 我知道,如果我简单地将
我是一名优秀的程序员,十分优秀!