我正在尝试用Django/unittest学习单元测试.
这些是我的模型的简单版本:
class Device(models.Model):
name = models.CharField(max_length=100)
def get_ips(self):
return DeviceIP.objects.filter(device=self.id)
class DeviceIP(models.Model):
ip = models.GenericIPAddressField()
device = models.ForeignKey(Device)
Run Code Online (Sandbox Code Playgroud)
这是我提出的测试代码:
from django.test import TestCase
class DeviceTest(TestCase):
def test_get_ips(self):
device = Device()
device.name = 'My Device'
ip1 = DeviceIP()
ip1.ip = '127.0.0.1'
ip1.device = device
ip1.save()
ip2 = DeviceIP()
ip2.ip = '127.0.0.2'
ip2.device = device
ip2.save()
ip3 = DeviceIP()
ip3.ip = '127.0.0.3'
ip3.device = device
ip3.save()
self.assertEqual(device.get_ips(), [ip1, ip2, ip3])
Run Code Online (Sandbox Code Playgroud)
测试结果失败,因为AssertionError即使字符串表示device.get_ips()和[ip1, ip2, ip3]相同.
如果我尝试使用self.assertListEqual …
当元素不够宽以显示文本内容时,有没有办法一次使用CSS隐藏一个单词(而不是一次一个字母)?
例如,使用以下代码,当浏览器窗口变窄以显示整个句子时,我希望它显示Lorem ipsum dolor sit...而不是Lorem ipsum dolor sit ame...
HTML:
<div>Lorem ipsum dolor sit amet</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
div { overflow:hidden; text-overflow:ellipsis; white-space-nowrap; }
Run Code Online (Sandbox Code Playgroud)
(我不需要支持旧浏览器)
是否可以使用CSS自动控制换行,以便在调整浏览器窗口大小时发生以下情况:
HTML:
<body>
<div>
<span id="s1">Lorem ipsum dolor:</span>
<span id="s2">sit amet consectetur adipiscing eli</span>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
所以三种可能的观点是:
1:
Lorem ipsum dolor:坐下来欣赏伊莱
2:
Lorem ipsum dolor:
坐下来欣赏伊莱
3:
Lorem ipsum dolor:
坐下来欣赏
伊莱
s1中的单词总是相同的,但s2中的单词可能会有所不同,所以我不能只white-space:nowrap根据页面的宽度进行更改.
一旦浏览器支持在Chrome和/或Firefox中运行,它就不是一个大问题.
这是一个可以使用的简单JSFiddle.