我有一个关于django的问题.
我在这里有ManyToMany模型
class Product(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(default=0.0, max_digits=9, decimal_places=2)
stock = models.IntegerField(default=0)
def __unicode__(self):
return self.name
class Cart(models.Model):
customer = models.ForeignKey(Customer)
products = models.ManyToManyField(Product, through='TransactionDetail')
t_date = models.DateField(default=datetime.now())
t_sum = models.FloatField(default=0.0)
def __unicode__(self):
return str(self.id)
class TransactionDetail(models.Model):
product = models.ForeignKey(Product)
cart = models.ForeignKey(Cart)
amount = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)
对于创建的1个购物车对象,我可以插入尽可能多的新TransactionDetail对象(产品和金额).我的问题是.我该如何实现触发器?我想要的是每当创建交易细节时,我希望产品库存的数量减去transactiondetail中的金额.
我读过有关post_save()但我不确定如何实现它.也许这样的事情
when:post_save(TransactionDetail,Cart)#Cart对象,其中TransactionDetail.cart = Cart.id
post_save(TransactionDetail,
Cart) #Cart object where TransactionDetail.cart= Cart.id
Cart.stock -= TransactionDetail.amount
Run Code Online (Sandbox Code Playgroud) 这两者的不同目的是什么?我的意思是,在哪种情况下我应该做他们每个人?
至于例子条件.如果你有后端服务器和几个前端网络,你会做哪一个?首先对后端服务器进行单元测试,或者首先在网络用户界面进行UI测试?鉴于条件,服务器和前端网络已经存在,因此它不是与(TDD)一起构建的迭代设计......
我有一个遗留代码库,我需要使用PHPUnit测试该代码.所以我根据你的经验要求提出建议.我应该先测试哪些课程?还是优先考虑?
我应该从easy/small类开始还是使用base/super类?
所以这是我要测试的课程.特别是我只选择了一个我要测试的功能.var是从classB bar执行某些函数返回的值是来自classC的实例,然后执行一些传递一些变量的函数.对于大多数提示/示例,要测试的函数是返回值.所以我的问题是,如何测试这个特定的功能是否有效?
谢谢.
class mA extends A {
...
function doSomething($foo) {
$var = doStuffFromClassB("hallo");
$bar = ClassC::instance();
$bar->doStuffFromClassC($var, $foo, "world");
}
}
Run Code Online (Sandbox Code Playgroud) 目前,对单元测试生产代码存在挑战。我们具有从传入的WCF消息中检索IP地址的功能。
public void DoSomething(){
var ipAddressFromMessage = GetIpFromWcfMessage();
var IpAddress = IPAddress.Parse(ipAddressFromMessage);
if(IpAddress.IsLoopback)
{
// do something
}
else
{
// do something else
}
}
private string GetIpFromWcfMessage()
{
OperationContext context = OperationContext.Current;
string ip = ...//use the IP from context.IncomingMessageProperties to extract the ip
return ip;
}
Run Code Online (Sandbox Code Playgroud)
问题是,我应该怎么做才能测试IP中的IP检查DoSomething()?
[Test]
Public void DoSomethingTest()
{
//Arrange...
// Mock OperationContext so that we can manipulate the ip address in the message
// Assert.
...
}
Run Code Online (Sandbox Code Playgroud)
是否应该以一种可以模拟它的方式(例如,实现一个接口并模拟该接口的实现)来更改使用Operation上下文的方式?
unit-testing ×4
phpunit ×2
c# ×1
django ×1
legacy-code ×1
mocking ×1
php ×1
python ×1
rhino-mocks ×1
testing ×1
ui-testing ×1
wcf ×1